Changes in / [f80e0218:1b5c81ed]
- Files:
-
- 425 added
- 175 deleted
- 111 edited
-
.gitignore (modified) (1 diff)
-
Jenkinsfile (modified) (1 diff)
-
Makefile.am (modified) (2 diffs)
-
Makefile.in (modified) (5 diffs)
-
aclocal.m4 (modified) (1 diff)
-
config.h.in (modified) (2 diffs)
-
configure (modified) (11 diffs)
-
configure.ac (modified) (7 diffs)
-
doc/LaTeXmacros/common.tex (modified) (10 diffs)
-
doc/LaTeXmacros/enumitem/README (deleted)
-
doc/LaTeXmacros/enumitem/enumitem.pdf (deleted)
-
doc/LaTeXmacros/enumitem/enumitem.sty (deleted)
-
doc/LaTeXmacros/enumitem/enumitem.tex (deleted)
-
doc/LaTeXmacros/listings/README (deleted)
-
doc/LaTeXmacros/listings/listings-acm.prf (deleted)
-
doc/LaTeXmacros/listings/listings-bash.prf (deleted)
-
doc/LaTeXmacros/listings/listings-fortran.prf (deleted)
-
doc/LaTeXmacros/listings/listings-lua.prf (deleted)
-
doc/LaTeXmacros/listings/listings-python.prf (deleted)
-
doc/LaTeXmacros/listings/listings.cfg (deleted)
-
doc/LaTeXmacros/listings/listings.dtx (deleted)
-
doc/LaTeXmacros/listings/listings.ins (deleted)
-
doc/LaTeXmacros/listings/listings.log (deleted)
-
doc/LaTeXmacros/listings/listings.pdf (deleted)
-
doc/LaTeXmacros/listings/listings.sty (deleted)
-
doc/LaTeXmacros/listings/listings.sty.new (deleted)
-
doc/LaTeXmacros/listings/lstdoc.sty (deleted)
-
doc/LaTeXmacros/listings/lstdrvrs.dtx (deleted)
-
doc/LaTeXmacros/listings/lstdrvrs.ins (deleted)
-
doc/LaTeXmacros/listings/lstdrvrs.pdf (deleted)
-
doc/LaTeXmacros/listings/lstlang1.sty (deleted)
-
doc/LaTeXmacros/listings/lstlang2.sty (deleted)
-
doc/LaTeXmacros/listings/lstlang3.sty (deleted)
-
doc/LaTeXmacros/listings/lstmisc.sty (deleted)
-
doc/bibliography/cfa.bib (modified) (1 diff, 1 prop)
-
doc/papers/Baker82.pdf (deleted)
-
doc/papers/Bilson.pdf (deleted)
-
doc/papers/Bilson03.pdf (deleted)
-
doc/papers/Breuel.pdf (deleted)
-
doc/papers/Cormack81.pdf (deleted)
-
doc/papers/CormackWright90.pdf (deleted)
-
doc/papers/Ditchfield92.pdf (deleted)
-
doc/papers/Grossman06.pdf (deleted)
-
doc/papers/Jones97.pdf (deleted)
-
doc/papers/Laufer92.pdf (deleted)
-
doc/papers/Ziegler92.pdf (deleted)
-
doc/papers/refrat98.pdf (deleted)
-
doc/refrat/.gitignore (deleted)
-
doc/refrat/Makefile (modified) (1 diff)
-
doc/refrat/refrat.tex (modified) (162 diffs)
-
doc/user/.gitignore (deleted)
-
doc/user/Cdecl.fig (deleted)
-
doc/user/Makefile (modified) (2 diffs)
-
doc/user/user.tex (modified) (96 diffs)
-
doc/working/resolver_design.md (deleted)
-
src/ArgTweak/FunctionFixer.cc (modified) (2 diffs)
-
src/CodeGen/CodeGenerator.cc (modified) (43 diffs)
-
src/CodeGen/CodeGenerator.h (modified) (7 diffs)
-
src/CodeGen/FixNames.cc (modified) (4 diffs)
-
src/CodeGen/OperatorTable.cc (modified) (2 diffs)
-
src/CodeGen/OperatorTable.h (modified) (2 diffs)
-
src/Common/utility.h (modified) (4 diffs)
-
src/ControlStruct/LabelFixer.cc (modified) (4 diffs)
-
src/ControlStruct/LabelFixer.h (modified) (3 diffs)
-
src/ControlStruct/LabelGenerator.cc (modified) (3 diffs)
-
src/ControlStruct/MLEMutator.cc (modified) (17 diffs)
-
src/ControlStruct/MLEMutator.h (modified) (6 diffs)
-
src/ControlStruct/Mutate.cc (modified) (3 diffs)
-
src/GenPoly/Box.cc (modified) (46 diffs)
-
src/GenPoly/CopyParams.cc (modified) (4 diffs)
-
src/GenPoly/GenPoly.cc (modified) (10 diffs)
-
src/GenPoly/GenPoly.h (modified) (2 diffs)
-
src/GenPoly/PolyMutator.cc (modified) (3 diffs)
-
src/GenPoly/ScopedMap.h (modified) (4 diffs)
-
src/GenPoly/ScopedSet.h (modified) (4 diffs)
-
src/GenPoly/Specialize.cc (modified) (6 diffs)
-
src/InitTweak/FixGlobalInit.cc (deleted)
-
src/InitTweak/FixGlobalInit.h (deleted)
-
src/InitTweak/FixInit.cc (deleted)
-
src/InitTweak/FixInit.h (deleted)
-
src/InitTweak/GenInit.cc (deleted)
-
src/InitTweak/GenInit.h (deleted)
-
src/InitTweak/InitModel.cc (modified) (3 diffs)
-
src/InitTweak/InitTweak.cc (deleted)
-
src/InitTweak/InitTweak.h (deleted)
-
src/InitTweak/RemoveInit.cc (added)
-
src/InitTweak/RemoveInit.h (added)
-
src/InitTweak/module.mk (modified) (1 diff)
-
src/MakeLibCfa.cc (modified) (6 diffs)
-
src/Makefile.in (modified) (23 diffs)
-
src/Parser/DeclarationNode.cc (modified) (7 diffs)
-
src/Parser/ExpressionNode.cc (modified) (13 diffs)
-
src/Parser/InitializerNode.cc (modified) (5 diffs)
-
src/Parser/ParseNode.h (modified) (15 diffs)
-
src/Parser/StatementNode.cc (modified) (12 diffs)
-
src/Parser/TypeData.cc (modified) (3 diffs)
-
src/Parser/lex.cc (modified) (25 diffs)
-
src/Parser/lex.ll (modified) (5 diffs)
-
src/Parser/parser.cc (modified) (236 diffs)
-
src/Parser/parser.h (modified) (1 diff)
-
src/Parser/parser.yy (modified) (34 diffs)
-
src/ResolvExpr/AlternativeFinder.cc (modified) (14 diffs)
-
src/ResolvExpr/AlternativeFinder.h (modified) (3 diffs)
-
src/ResolvExpr/CommonType.cc (modified) (3 diffs)
-
src/ResolvExpr/ConversionCost.cc (modified) (2 diffs)
-
src/ResolvExpr/RenameVars.cc (modified) (4 diffs)
-
src/ResolvExpr/Resolver.cc (modified) (18 diffs)
-
src/ResolvExpr/Resolver.h (modified) (2 diffs)
-
src/ResolvExpr/typeops.h (modified) (1 diff)
-
src/SymTab/AddVisit.h (modified) (2 diffs)
-
src/SymTab/Autogen.cc (deleted)
-
src/SymTab/Autogen.h (deleted)
-
src/SymTab/Indexer.cc (modified) (25 diffs)
-
src/SymTab/Indexer.h (modified) (7 diffs)
-
src/SymTab/Validate.cc (modified) (16 diffs)
-
src/SymTab/module.mk (modified) (2 diffs)
-
src/SynTree/AddStmtVisitor.cc (deleted)
-
src/SynTree/AddStmtVisitor.h (deleted)
-
src/SynTree/AddressExpr.cc (modified) (2 diffs)
-
src/SynTree/ApplicationExpr.cc (modified) (3 diffs)
-
src/SynTree/ArrayType.cc (modified) (2 diffs)
-
src/SynTree/Attribute.cc (deleted)
-
src/SynTree/Attribute.h (deleted)
-
src/SynTree/CommaExpr.cc (modified) (3 diffs)
-
src/SynTree/CompoundStmt.cc (modified) (4 diffs)
-
src/SynTree/Constant.cc (modified) (1 diff)
-
src/SynTree/Constant.h (modified) (1 diff)
-
src/SynTree/Declaration.h (modified) (7 diffs)
-
src/SynTree/DeclarationWithType.cc (modified) (2 diffs)
-
src/SynTree/Expression.cc (modified) (14 diffs)
-
src/SynTree/Expression.h (modified) (5 diffs)
-
src/SynTree/FunctionDecl.cc (modified) (9 diffs)
-
src/SynTree/Initializer.cc (modified) (3 diffs)
-
src/SynTree/Initializer.h (modified) (10 diffs)
-
src/SynTree/Label.h (deleted)
-
src/SynTree/Mutator.cc (modified) (4 diffs)
-
src/SynTree/Mutator.h (modified) (5 diffs)
-
src/SynTree/ObjectDecl.cc (modified) (4 diffs)
-
src/SynTree/Statement.cc (modified) (14 diffs)
-
src/SynTree/Statement.h (modified) (3 diffs)
-
src/SynTree/SynTree.h (modified) (5 diffs)
-
src/SynTree/Type.cc (modified) (3 diffs)
-
src/SynTree/Type.h (modified) (1 diff)
-
src/SynTree/TypeSubstitution.cc (modified) (5 diffs)
-
src/SynTree/TypeSubstitution.h (modified) (8 diffs)
-
src/SynTree/Visitor.cc (modified) (9 diffs)
-
src/SynTree/Visitor.h (modified) (6 diffs)
-
src/SynTree/module.mk (modified) (2 diffs)
-
src/Tests/Abstype.c (added)
-
src/Tests/Array.c (added)
-
src/Tests/AsmName.c (added)
-
src/Tests/Attributes.c (added)
-
src/Tests/Cast.c (added)
-
src/Tests/CastError.c (added)
-
src/Tests/CharStringConstants.c (added)
-
src/Tests/CommentMisc.c (added)
-
src/Tests/Constant0-1.c (added)
-
src/Tests/Context.c (added)
-
src/Tests/DeclarationErrors.c (added)
-
src/Tests/DeclarationSpecifier.c (added)
-
src/Tests/Enum.c (added)
-
src/Tests/Exception.c (added)
-
src/Tests/Expect-a/Abstype.txt (added)
-
src/Tests/Expect-a/Array.txt (added)
-
src/Tests/Expect-a/AsmName.txt (added)
-
src/Tests/Expect-a/Attributes.txt (added)
-
src/Tests/Expect-a/Cast.txt (added)
-
src/Tests/Expect-a/CastError.txt (added)
-
src/Tests/Expect-a/CharStringConstants.txt (added)
-
src/Tests/Expect-a/CommentMisc.txt (added)
-
src/Tests/Expect-a/Constant0-1.txt (added)
-
src/Tests/Expect-a/Context.txt (added)
-
src/Tests/Expect-a/DeclarationErrors.txt (added)
-
src/Tests/Expect-a/DeclarationSpecifier.txt (added)
-
src/Tests/Expect-a/Enum.txt (added)
-
src/Tests/Expect-a/Exception.txt (added)
-
src/Tests/Expect-a/Expression.txt (added)
-
src/Tests/Expect-a/Forall.txt (added)
-
src/Tests/Expect-a/Function.txt (added)
-
src/Tests/Expect-a/Functions.txt (added)
-
src/Tests/Expect-a/GccExtensions.txt (added)
-
src/Tests/Expect-a/IdentFuncDeclarator.txt (added)
-
src/Tests/Expect-a/IdentFuncParamDeclarator.txt (added)
-
src/Tests/Expect-a/InferParam.txt (added)
-
src/Tests/Expect-a/Initialization.txt (added)
-
src/Tests/Expect-a/Initialization2.txt (added)
-
src/Tests/Expect-a/LabelledExit.txt (added)
-
src/Tests/Expect-a/Members.txt (added)
-
src/Tests/Expect-a/Misc.txt (added)
-
src/Tests/Expect-a/MiscError.txt (added)
-
src/Tests/Expect-a/NamedParmArg.txt (added)
-
src/Tests/Expect-a/NumericConstants.txt (added)
-
src/Tests/Expect-a/OccursError.txt (added)
-
src/Tests/Expect-a/Operators.txt (added)
-
src/Tests/Expect-a/Quad.txt (added)
-
src/Tests/Expect-a/Rank2.txt (added)
-
src/Tests/Expect-a/Scope.txt (added)
-
src/Tests/Expect-a/ScopeErrors.txt (added)
-
src/Tests/Expect-a/ShortCircuit.txt (added)
-
src/Tests/Expect-a/Statement.txt (added)
-
src/Tests/Expect-a/StructMember.txt (added)
-
src/Tests/Expect-a/Subrange.txt (added)
-
src/Tests/Expect-a/Switch.txt (added)
-
src/Tests/Expect-a/Tuple.txt (added)
-
src/Tests/Expect-a/TypeGenerator.txt (added)
-
src/Tests/Expect-a/Typedef.txt (added)
-
src/Tests/Expect-a/TypedefDeclarator.txt (added)
-
src/Tests/Expect-a/TypedefParamDeclarator.txt (added)
-
src/Tests/Expect-a/Typeof.txt (added)
-
src/Tests/Expect-a/VariableDeclarator.txt (added)
-
src/Tests/Expect-a/gcc900407-1.txt (added)
-
src/Tests/Expect-a/gcc900516-1.txt (added)
-
src/Tests/Expect-a/gcc920301-1.txt (added)
-
src/Tests/Expect-a/gcc920409-1.txt (added)
-
src/Tests/Expect-a/gcc920409-2.txt (added)
-
src/Tests/Expect-a/gcc920410-2.txt (added)
-
src/Tests/Expect-a/gcc920501-1.txt (added)
-
src/Tests/Expect-a/gcc920501-11.txt (added)
-
src/Tests/Expect-a/gcc920501-19.txt (added)
-
src/Tests/Expect-e/Abstype.txt (added)
-
src/Tests/Expect-e/Array.txt (added)
-
src/Tests/Expect-e/AsmName.txt (added)
-
src/Tests/Expect-e/Attributes.txt (added)
-
src/Tests/Expect-e/Cast.txt (added)
-
src/Tests/Expect-e/CastError.txt (added)
-
src/Tests/Expect-e/CharStringConstants.txt (added)
-
src/Tests/Expect-e/CommentMisc.txt (added)
-
src/Tests/Expect-e/Constant0-1.txt (added)
-
src/Tests/Expect-e/Context.txt (added)
-
src/Tests/Expect-e/DeclarationErrors.txt (added)
-
src/Tests/Expect-e/DeclarationSpecifier.txt (added)
-
src/Tests/Expect-e/Enum.txt (added)
-
src/Tests/Expect-e/Exception.txt (added)
-
src/Tests/Expect-e/Expression.txt (added)
-
src/Tests/Expect-e/Forall.txt (added)
-
src/Tests/Expect-e/Function.txt (added)
-
src/Tests/Expect-e/Functions.txt (added)
-
src/Tests/Expect-e/GccExtensions.txt (added)
-
src/Tests/Expect-e/IdentFuncDeclarator.txt (added)
-
src/Tests/Expect-e/IdentFuncParamDeclarator.txt (added)
-
src/Tests/Expect-e/InferParam.txt (added)
-
src/Tests/Expect-e/Initialization.txt (added)
-
src/Tests/Expect-e/Initialization2.txt (added)
-
src/Tests/Expect-e/LabelledExit.txt (added)
-
src/Tests/Expect-e/Members.txt (added)
-
src/Tests/Expect-e/Misc.txt (added)
-
src/Tests/Expect-e/MiscError.txt (added)
-
src/Tests/Expect-e/NamedParmArg.txt (added)
-
src/Tests/Expect-e/NumericConstants.txt (added)
-
src/Tests/Expect-e/OccursError.txt (added)
-
src/Tests/Expect-e/Operators.txt (added)
-
src/Tests/Expect-e/Quad.txt (added)
-
src/Tests/Expect-e/Rank2.txt (added)
-
src/Tests/Expect-e/Scope.txt (added)
-
src/Tests/Expect-e/ScopeErrors.txt (added)
-
src/Tests/Expect-e/ShortCircuit.txt (added)
-
src/Tests/Expect-e/Statement.txt (added)
-
src/Tests/Expect-e/StructMember.txt (added)
-
src/Tests/Expect-e/Subrange.txt (added)
-
src/Tests/Expect-e/Switch.txt (added)
-
src/Tests/Expect-e/Tuple.txt (added)
-
src/Tests/Expect-e/TypeGenerator.txt (added)
-
src/Tests/Expect-e/Typedef.txt (added)
-
src/Tests/Expect-e/TypedefDeclarator.txt (added)
-
src/Tests/Expect-e/TypedefParamDeclarator.txt (added)
-
src/Tests/Expect-e/Typeof.txt (added)
-
src/Tests/Expect-e/VariableDeclarator.txt (added)
-
src/Tests/Expect-e/gcc900407-1.txt (added)
-
src/Tests/Expect-e/gcc900516-1.txt (added)
-
src/Tests/Expect-e/gcc920301-1.txt (added)
-
src/Tests/Expect-e/gcc920409-1.txt (added)
-
src/Tests/Expect-e/gcc920409-2.txt (added)
-
src/Tests/Expect-e/gcc920410-2.txt (added)
-
src/Tests/Expect-e/gcc920501-1.txt (added)
-
src/Tests/Expect-e/gcc920501-11.txt (added)
-
src/Tests/Expect-e/gcc920501-19.txt (added)
-
src/Tests/Expect-f/Abstype.txt (added)
-
src/Tests/Expect-f/Array.txt (added)
-
src/Tests/Expect-f/AsmName.txt (added)
-
src/Tests/Expect-f/Attributes.txt (added)
-
src/Tests/Expect-f/Cast.txt (added)
-
src/Tests/Expect-f/CastError.txt (added)
-
src/Tests/Expect-f/CharStringConstants.txt (added)
-
src/Tests/Expect-f/CommentMisc.txt (added)
-
src/Tests/Expect-f/Constant0-1.txt (added)
-
src/Tests/Expect-f/Context.txt (added)
-
src/Tests/Expect-f/DeclarationErrors.txt (added)
-
src/Tests/Expect-f/DeclarationSpecifier.txt (added)
-
src/Tests/Expect-f/Enum.txt (added)
-
src/Tests/Expect-f/Exception.txt (added)
-
src/Tests/Expect-f/Expression.txt (added)
-
src/Tests/Expect-f/Forall.txt (added)
-
src/Tests/Expect-f/Function.txt (added)
-
src/Tests/Expect-f/Functions.txt (added)
-
src/Tests/Expect-f/GccExtensions.txt (added)
-
src/Tests/Expect-f/IdentFuncDeclarator.txt (added)
-
src/Tests/Expect-f/IdentFuncParamDeclarator.txt (added)
-
src/Tests/Expect-f/InferParam.txt (added)
-
src/Tests/Expect-f/Initialization.txt (added)
-
src/Tests/Expect-f/Initialization2.txt (added)
-
src/Tests/Expect-f/LabelledExit.txt (added)
-
src/Tests/Expect-f/Members.txt (added)
-
src/Tests/Expect-f/Misc.txt (added)
-
src/Tests/Expect-f/MiscError.txt (added)
-
src/Tests/Expect-f/NamedParmArg.txt (added)
-
src/Tests/Expect-f/NumericConstants.txt (added)
-
src/Tests/Expect-f/OccursError.txt (added)
-
src/Tests/Expect-f/Operators.txt (added)
-
src/Tests/Expect-f/Quad.txt (added)
-
src/Tests/Expect-f/Rank2.txt (added)
-
src/Tests/Expect-f/Scope.txt (added)
-
src/Tests/Expect-f/ScopeErrors.txt (added)
-
src/Tests/Expect-f/ShortCircuit.txt (added)
-
src/Tests/Expect-f/Statement.txt (added)
-
src/Tests/Expect-f/StructMember.txt (added)
-
src/Tests/Expect-f/Subrange.txt (added)
-
src/Tests/Expect-f/Switch.txt (added)
-
src/Tests/Expect-f/Tuple.txt (added)
-
src/Tests/Expect-f/TypeGenerator.txt (added)
-
src/Tests/Expect-f/Typedef.txt (added)
-
src/Tests/Expect-f/TypedefDeclarator.txt (added)
-
src/Tests/Expect-f/TypedefParamDeclarator.txt (added)
-
src/Tests/Expect-f/Typeof.txt (added)
-
src/Tests/Expect-f/VariableDeclarator.txt (added)
-
src/Tests/Expect-f/gcc900407-1.txt (added)
-
src/Tests/Expect-f/gcc900516-1.txt (added)
-
src/Tests/Expect-f/gcc920301-1.txt (added)
-
src/Tests/Expect-f/gcc920409-1.txt (added)
-
src/Tests/Expect-f/gcc920409-2.txt (added)
-
src/Tests/Expect-f/gcc920410-2.txt (added)
-
src/Tests/Expect-f/gcc920501-1.txt (added)
-
src/Tests/Expect-f/gcc920501-11.txt (added)
-
src/Tests/Expect-f/gcc920501-19.txt (added)
-
src/Tests/Expect-r/Abstype.txt (added)
-
src/Tests/Expect-r/Array.txt (added)
-
src/Tests/Expect-r/AsmName.txt (added)
-
src/Tests/Expect-r/Attributes.txt (added)
-
src/Tests/Expect-r/Cast.txt (added)
-
src/Tests/Expect-r/CastError.txt (added)
-
src/Tests/Expect-r/CharStringConstants.txt (added)
-
src/Tests/Expect-r/CommentMisc.txt (added)
-
src/Tests/Expect-r/Constant0-1.txt (added)
-
src/Tests/Expect-r/Context.txt (added)
-
src/Tests/Expect-r/DeclarationErrors.txt (added)
-
src/Tests/Expect-r/DeclarationSpecifier.txt (added)
-
src/Tests/Expect-r/Enum.txt (added)
-
src/Tests/Expect-r/Exception.txt (added)
-
src/Tests/Expect-r/Expression.txt (added)
-
src/Tests/Expect-r/Forall.txt (added)
-
src/Tests/Expect-r/Function.txt (added)
-
src/Tests/Expect-r/Functions.txt (added)
-
src/Tests/Expect-r/GccExtensions.txt (added)
-
src/Tests/Expect-r/IdentFuncDeclarator.txt (added)
-
src/Tests/Expect-r/IdentFuncParamDeclarator.txt (added)
-
src/Tests/Expect-r/InferParam.txt (added)
-
src/Tests/Expect-r/Initialization.txt (added)
-
src/Tests/Expect-r/Initialization2.txt (added)
-
src/Tests/Expect-r/LabelledExit.txt (added)
-
src/Tests/Expect-r/Members.txt (added)
-
src/Tests/Expect-r/Misc.txt (added)
-
src/Tests/Expect-r/MiscError.txt (added)
-
src/Tests/Expect-r/NamedParmArg.txt (added)
-
src/Tests/Expect-r/NumericConstants.txt (added)
-
src/Tests/Expect-r/OccursError.txt (added)
-
src/Tests/Expect-r/Operators.txt (added)
-
src/Tests/Expect-r/Quad.txt (added)
-
src/Tests/Expect-r/Rank2.txt (added)
-
src/Tests/Expect-r/Scope.txt (added)
-
src/Tests/Expect-r/ScopeErrors.txt (added)
-
src/Tests/Expect-r/ShortCircuit.txt (added)
-
src/Tests/Expect-r/Statement.txt (added)
-
src/Tests/Expect-r/StructMember.txt (added)
-
src/Tests/Expect-r/Subrange.txt (added)
-
src/Tests/Expect-r/Switch.txt (added)
-
src/Tests/Expect-r/Tuple.txt (added)
-
src/Tests/Expect-r/TypeGenerator.txt (added)
-
src/Tests/Expect-r/Typedef.txt (added)
-
src/Tests/Expect-r/TypedefDeclarator.txt (added)
-
src/Tests/Expect-r/TypedefParamDeclarator.txt (added)
-
src/Tests/Expect-r/Typeof.txt (added)
-
src/Tests/Expect-r/VariableDeclarator.txt (added)
-
src/Tests/Expect-r/gcc900407-1.txt (added)
-
src/Tests/Expect-r/gcc900516-1.txt (added)
-
src/Tests/Expect-r/gcc920301-1.txt (added)
-
src/Tests/Expect-r/gcc920409-1.txt (added)
-
src/Tests/Expect-r/gcc920409-2.txt (added)
-
src/Tests/Expect-r/gcc920410-2.txt (added)
-
src/Tests/Expect-r/gcc920501-1.txt (added)
-
src/Tests/Expect-r/gcc920501-11.txt (added)
-
src/Tests/Expect-r/gcc920501-19.txt (added)
-
src/Tests/Expect-s/Abstype.txt (added)
-
src/Tests/Expect-s/Array.txt (added)
-
src/Tests/Expect-s/AsmName.txt (added)
-
src/Tests/Expect-s/Attributes.txt (added)
-
src/Tests/Expect-s/Cast.txt (added)
-
src/Tests/Expect-s/CastError.txt (added)
-
src/Tests/Expect-s/CharStringConstants.txt (added)
-
src/Tests/Expect-s/CommentMisc.txt (added)
-
src/Tests/Expect-s/Constant0-1.txt (added)
-
src/Tests/Expect-s/Context.txt (added)
-
src/Tests/Expect-s/DeclarationErrors.txt (added)
-
src/Tests/Expect-s/DeclarationSpecifier.txt (added)
-
src/Tests/Expect-s/Enum.txt (added)
-
src/Tests/Expect-s/Exception.txt (added)
-
src/Tests/Expect-s/Expression.txt (added)
-
src/Tests/Expect-s/Forall.txt (added)
-
src/Tests/Expect-s/Function.txt (added)
-
src/Tests/Expect-s/Functions.txt (added)
-
src/Tests/Expect-s/GccExtensions.txt (added)
-
src/Tests/Expect-s/IdentFuncDeclarator.txt (added)
-
src/Tests/Expect-s/IdentFuncParamDeclarator.txt (added)
-
src/Tests/Expect-s/InferParam.txt (added)
-
src/Tests/Expect-s/Initialization.txt (added)
-
src/Tests/Expect-s/Initialization2.txt (added)
-
src/Tests/Expect-s/LabelledExit.txt (added)
-
src/Tests/Expect-s/Members.txt (added)
-
src/Tests/Expect-s/Misc.txt (added)
-
src/Tests/Expect-s/MiscError.txt (added)
-
src/Tests/Expect-s/NamedParmArg.txt (added)
-
src/Tests/Expect-s/NumericConstants.txt (added)
-
src/Tests/Expect-s/OccursError.txt (added)
-
src/Tests/Expect-s/Operators.txt (added)
-
src/Tests/Expect-s/Quad.txt (added)
-
src/Tests/Expect-s/Rank2.txt (added)
-
src/Tests/Expect-s/Scope.txt (added)
-
src/Tests/Expect-s/ScopeErrors.txt (added)
-
src/Tests/Expect-s/ShortCircuit.txt (added)
-
src/Tests/Expect-s/Statement.txt (added)
-
src/Tests/Expect-s/StructMember.txt (added)
-
src/Tests/Expect-s/Subrange.txt (added)
-
src/Tests/Expect-s/Switch.txt (added)
-
src/Tests/Expect-s/Tuple.txt (added)
-
src/Tests/Expect-s/TypeGenerator.txt (added)
-
src/Tests/Expect-s/Typedef.txt (added)
-
src/Tests/Expect-s/TypedefDeclarator.txt (added)
-
src/Tests/Expect-s/TypedefParamDeclarator.txt (added)
-
src/Tests/Expect-s/Typeof.txt (added)
-
src/Tests/Expect-s/VariableDeclarator.txt (added)
-
src/Tests/Expect-s/gcc900407-1.txt (added)
-
src/Tests/Expect-s/gcc900516-1.txt (added)
-
src/Tests/Expect-s/gcc920301-1.txt (added)
-
src/Tests/Expect-s/gcc920409-1.txt (added)
-
src/Tests/Expect-s/gcc920409-2.txt (added)
-
src/Tests/Expect-s/gcc920410-2.txt (added)
-
src/Tests/Expect-s/gcc920501-1.txt (added)
-
src/Tests/Expect-s/gcc920501-11.txt (added)
-
src/Tests/Expect-s/gcc920501-19.txt (added)
-
src/Tests/Expect-v/Abstype.txt (added)
-
src/Tests/Expect-v/Array.txt (added)
-
src/Tests/Expect-v/AsmName.txt (added)
-
src/Tests/Expect-v/Attributes.txt (added)
-
src/Tests/Expect-v/Cast.txt (added)
-
src/Tests/Expect-v/CastError.txt (added)
-
src/Tests/Expect-v/CharStringConstants.txt (added)
-
src/Tests/Expect-v/CommentMisc.txt (added)
-
src/Tests/Expect-v/Constant0-1.txt (added)
-
src/Tests/Expect-v/Context.txt (added)
-
src/Tests/Expect-v/DeclarationErrors.txt (added)
-
src/Tests/Expect-v/DeclarationSpecifier.txt (added)
-
src/Tests/Expect-v/Enum.txt (added)
-
src/Tests/Expect-v/Exception.txt (added)
-
src/Tests/Expect-v/Expression.txt (added)
-
src/Tests/Expect-v/Forall.txt (added)
-
src/Tests/Expect-v/Function.txt (added)
-
src/Tests/Expect-v/Functions.txt (added)
-
src/Tests/Expect-v/GccExtensions.txt (added)
-
src/Tests/Expect-v/IdentFuncDeclarator.txt (added)
-
src/Tests/Expect-v/IdentFuncParamDeclarator.txt (added)
-
src/Tests/Expect-v/InferParam.txt (added)
-
src/Tests/Expect-v/Initialization.txt (added)
-
src/Tests/Expect-v/Initialization2.txt (added)
-
src/Tests/Expect-v/LabelledExit.txt (added)
-
src/Tests/Expect-v/Members.txt (added)
-
src/Tests/Expect-v/Misc.txt (added)
-
src/Tests/Expect-v/MiscError.txt (added)
-
src/Tests/Expect-v/NamedParmArg.txt (added)
-
src/Tests/Expect-v/NumericConstants.txt (added)
-
src/Tests/Expect-v/OccursError.txt (added)
-
src/Tests/Expect-v/Operators.txt (added)
-
src/Tests/Expect-v/Quad.txt (added)
-
src/Tests/Expect-v/Rank2.txt (added)
-
src/Tests/Expect-v/Scope.txt (added)
-
src/Tests/Expect-v/ScopeErrors.txt (added)
-
src/Tests/Expect-v/ShortCircuit.txt (added)
-
src/Tests/Expect-v/Statement.txt (added)
-
src/Tests/Expect-v/StructMember.txt (added)
-
src/Tests/Expect-v/Subrange.txt (added)
-
src/Tests/Expect-v/Switch.txt (added)
-
src/Tests/Expect-v/Tuple.txt (added)
-
src/Tests/Expect-v/TypeGenerator.txt (added)
-
src/Tests/Expect-v/Typedef.txt (added)
-
src/Tests/Expect-v/TypedefDeclarator.txt (added)
-
src/Tests/Expect-v/TypedefParamDeclarator.txt (added)
-
src/Tests/Expect-v/Typeof.txt (added)
-
src/Tests/Expect-v/VariableDeclarator.txt (added)
-
src/Tests/Expect-v/gcc900407-1.txt (added)
-
src/Tests/Expect-v/gcc900516-1.txt (added)
-
src/Tests/Expect-v/gcc920301-1.txt (added)
-
src/Tests/Expect-v/gcc920409-1.txt (added)
-
src/Tests/Expect-v/gcc920409-2.txt (added)
-
src/Tests/Expect-v/gcc920410-2.txt (added)
-
src/Tests/Expect-v/gcc920501-1.txt (added)
-
src/Tests/Expect-v/gcc920501-11.txt (added)
-
src/Tests/Expect-v/gcc920501-19.txt (added)
-
src/Tests/Expression.c (added)
-
src/Tests/Forall.c (added)
-
src/Tests/Function.c (added)
-
src/Tests/Functions.c (added)
-
src/Tests/GccExtensions.c (added)
-
src/Tests/IdentFuncDeclarator.c (added)
-
src/Tests/IdentFuncParamDeclarator.c (added)
-
src/Tests/InferParam.c (added)
-
src/Tests/Initialization.c (added)
-
src/Tests/Initialization2.c (added)
-
src/Tests/LabelledExit.c (added)
-
src/Tests/Makefile (added)
-
src/Tests/Members.c (added)
-
src/Tests/Misc.c (added)
-
src/Tests/MiscError.c (added)
-
src/Tests/NamedParmArg.c (added)
-
src/Tests/NumericConstants.c (added)
-
src/Tests/OccursError.c (added)
-
src/Tests/Operators.c (added)
-
src/Tests/Quad.c (added)
-
src/Tests/Rank2.c (added)
-
src/Tests/Scope.c (added)
-
src/Tests/ScopeErrors.c (added)
-
src/Tests/ShortCircuit.c (added)
-
src/Tests/Statement.c (added)
-
src/Tests/StructMember.c (added)
-
src/Tests/Subrange.c (added)
-
src/Tests/Switch.c (added)
-
src/Tests/Tuple.c (added)
-
src/Tests/TypeGenerator.c (added)
-
src/Tests/Typedef.c (added)
-
src/Tests/TypedefDeclarator.c (added)
-
src/Tests/TypedefParamDeclarator.c (added)
-
src/Tests/Typeof.c (added)
-
src/Tests/VariableDeclarator.c (added)
-
src/Tests/gcc900407-1.c (added)
-
src/Tests/gcc900516-1.c (added)
-
src/Tests/gcc920301-1.c (added)
-
src/Tests/gcc920409-1.c (added)
-
src/Tests/gcc920409-2.c (added)
-
src/Tests/gcc920410-2.c (added)
-
src/Tests/gcc920501-1.c (added)
-
src/Tests/gcc920501-11.c (added)
-
src/Tests/gcc920501-19.c (added)
-
src/driver/Makefile.in (modified) (6 diffs)
-
src/driver/cc1.cc (modified) (7 diffs)
-
src/driver/cfa.cc (modified) (6 diffs)
-
src/examples/Attributes.c (deleted)
-
src/examples/Initialization.c (deleted)
-
src/examples/Initialization2.c (deleted)
-
src/examples/Makefile.am (modified) (2 diffs)
-
src/examples/Makefile.example (deleted)
-
src/examples/Makefile.in (modified) (10 diffs)
-
src/examples/Members.c (deleted)
-
src/examples/Misc.c (deleted)
-
src/examples/MiscError.c (deleted)
-
src/examples/Rank2.c (deleted)
-
src/examples/Tuple.c (deleted)
-
src/examples/abs.c (added)
-
src/examples/abstype.c (modified) (2 diffs)
-
src/examples/alloc.c (modified) (4 diffs)
-
src/examples/array.c (added)
-
src/examples/array.h (added)
-
src/examples/assert.c (added)
-
src/examples/ato.c (added)
-
src/examples/constants.c (added)
-
src/examples/control_structures.c (added)
-
src/examples/ctxts.c (added)
-
src/examples/esskaykay.c (added)
-
src/examples/fstream_test.c (added)
-
src/examples/includes.c (modified) (4 diffs)
-
src/examples/io.c (added)
-
src/examples/io.data (added)
-
src/examples/limits.c (added)
-
src/examples/minmax.c (added)
-
src/examples/quoted_keyword.c (added)
-
src/examples/rational.c (added)
-
src/examples/runTests.sh (added)
-
src/examples/sum.c (modified) (6 diffs)
-
src/examples/swap.c (added)
-
src/examples/tests/vector_test.in.txt (added)
-
src/examples/tests/vector_test.out.txt (added)
-
src/examples/vector_int.c (added)
-
src/examples/vector_int.h (added)
-
src/examples/vector_test.c (added)
-
src/examples/wrapper/.gitignore (deleted)
-
src/examples/wrapper/premake4.lua (deleted)
-
src/examples/wrapper/src/main.c (deleted)
-
src/examples/wrapper/src/pointer.h (deleted)
-
src/initialization.txt (modified) (1 diff)
-
src/libcfa/Makefile.am (modified) (2 diffs)
-
src/libcfa/Makefile.in (modified) (10 diffs)
-
src/libcfa/fstream (modified) (2 diffs)
-
src/libcfa/fstream.c (modified) (6 diffs)
-
src/libcfa/iostream.c (modified) (24 diffs)
-
src/libcfa/math (deleted)
-
src/libcfa/math.c (deleted)
-
src/libcfa/prelude.cf (modified) (3 diffs)
-
src/libcfa/rational (modified) (2 diffs)
-
src/libcfa/rational.c (modified) (5 diffs)
-
src/libcfa/stdlib (modified) (5 diffs)
-
src/libcfa/stdlib.c (modified) (8 diffs)
-
src/main.cc (modified) (18 diffs)
-
src/tests/.expect/abs.txt (deleted)
-
src/tests/.expect/array.txt (deleted)
-
src/tests/.expect/asmName.txt (deleted)
-
src/tests/.expect/ato.txt (deleted)
-
src/tests/.expect/avl_test.txt (deleted)
-
src/tests/.expect/cast.txt (deleted)
-
src/tests/.expect/castError.txt (deleted)
-
src/tests/.expect/constant0-1.txt (deleted)
-
src/tests/.expect/constant0-1DP.txt (deleted)
-
src/tests/.expect/constant0-1ND.txt (deleted)
-
src/tests/.expect/constant0-1NDDP.txt (deleted)
-
src/tests/.expect/declarationErrors.txt (deleted)
-
src/tests/.expect/declarationSpecifier.txt (deleted)
-
src/tests/.expect/dtor-early-exit-ERR1.txt (deleted)
-
src/tests/.expect/dtor-early-exit-ERR2.txt (deleted)
-
src/tests/.expect/dtor-early-exit.txt (deleted)
-
src/tests/.expect/enum.txt (deleted)
-
src/tests/.expect/expression.txt (deleted)
-
src/tests/.expect/gccExtensions.txt (deleted)
-
src/tests/.expect/identFuncDeclarator.txt (deleted)
-
src/tests/.expect/identParamDeclarator.txt (deleted)
-
src/tests/.expect/init_once.txt (deleted)
-
src/tests/.expect/io.txt (deleted)
-
src/tests/.expect/labelledExit.txt (deleted)
-
src/tests/.expect/limits.txt (deleted)
-
src/tests/.expect/math.txt (deleted)
-
src/tests/.expect/minmax.txt (deleted)
-
src/tests/.expect/numericConstants.txt (deleted)
-
src/tests/.expect/operators.txt (deleted)
-
src/tests/.expect/scopeErrors.txt (deleted)
-
src/tests/.expect/shortCircuit.txt (deleted)
-
src/tests/.expect/swap.txt (deleted)
-
src/tests/.expect/switch.txt (deleted)
-
src/tests/.expect/typeof.txt (deleted)
-
src/tests/.expect/variableDeclarator.txt (deleted)
-
src/tests/.expect/vector_test.txt (deleted)
-
src/tests/.gitignore (deleted)
-
src/tests/.in/avl_test.txt (deleted)
-
src/tests/.in/vector_test.txt (deleted)
-
src/tests/Makefile.am (deleted)
-
src/tests/Makefile.in (deleted)
-
src/tests/abs.c (deleted)
-
src/tests/array.c (deleted)
-
src/tests/asmName.c (deleted)
-
src/tests/ato.c (deleted)
-
src/tests/avltree/avl-private.c (deleted)
-
src/tests/avltree/avl-private.h (deleted)
-
src/tests/avltree/avl.h (deleted)
-
src/tests/avltree/avl0.c (deleted)
-
src/tests/avltree/avl1.c (deleted)
-
src/tests/avltree/avl2.c (deleted)
-
src/tests/avltree/avl3.c (deleted)
-
src/tests/avltree/avl4.c (deleted)
-
src/tests/avltree/avl_test.c (deleted)
-
src/tests/cast.c (deleted)
-
src/tests/castError.c (deleted)
-
src/tests/charStringConstants.c (deleted)
-
src/tests/commentMisc.c (deleted)
-
src/tests/constant0-1.c (deleted)
-
src/tests/context.c (deleted)
-
src/tests/declarationErrors.c (deleted)
-
src/tests/declarationSpecifier.c (deleted)
-
src/tests/dtor-early-exit.c (deleted)
-
src/tests/enum.c (deleted)
-
src/tests/exception.c (deleted)
-
src/tests/expression.c (deleted)
-
src/tests/forall.c (deleted)
-
src/tests/fstream_test.c (deleted)
-
src/tests/functions.c (deleted)
-
src/tests/gccExtensions.c (deleted)
-
src/tests/identFuncDeclarator.c (deleted)
-
src/tests/identParamDeclarator.c (deleted)
-
src/tests/init_once.c (deleted)
-
src/tests/io.c (deleted)
-
src/tests/io.data (deleted)
-
src/tests/labelledExit.c (deleted)
-
src/tests/limits.c (deleted)
-
src/tests/math.c (deleted)
-
src/tests/minmax.c (deleted)
-
src/tests/namedParmArg.c (deleted)
-
src/tests/numericConstants.c (deleted)
-
src/tests/occursError.c (deleted)
-
src/tests/operators.c (deleted)
-
src/tests/quoted_keyword.c (deleted)
-
src/tests/rational.c (deleted)
-
src/tests/scope.c (deleted)
-
src/tests/scopeErrors.c (deleted)
-
src/tests/shortCircuit.c (deleted)
-
src/tests/structMember.c (deleted)
-
src/tests/subrange.c (deleted)
-
src/tests/swap.c (deleted)
-
src/tests/switch.c (deleted)
-
src/tests/test.py (deleted)
-
src/tests/tuples.c (deleted)
-
src/tests/typeGenerator.c (deleted)
-
src/tests/typedef.c (deleted)
-
src/tests/typedefDeclarator.c (deleted)
-
src/tests/typeof.c (deleted)
-
src/tests/variableDeclarator.c (deleted)
-
src/tests/vector/array.c (deleted)
-
src/tests/vector/array.h (deleted)
-
src/tests/vector/vector_int.c (deleted)
-
src/tests/vector/vector_int.h (deleted)
-
src/tests/vector/vector_test.c (deleted)
Legend:
- Unmodified
- Added
- Removed
-
.gitignore
rf80e0218 r1b5c81ed 31 31 # generated by bison and lex from cfa.yy and lex.ll, respectively 32 32 src/Parser/parser.output 33 34 # generated by latex 35 *.aux 36 *.bbl 37 *.blg 38 *.brf 39 *.dvi 40 *.idx 41 *.ilg 42 *.ind 43 *.log 44 *.out 45 *.pdf 46 *.ps 47 *.toc -
Jenkinsfile
rf80e0218 r1b5c81ed 1 #!groovy 2 3 //=========================================================================================================== 4 // Main compilation routine 5 //=========================================================================================================== 6 //Compilation script is done here but environnement set-up and error handling is done in main loop 7 def cfa_build(boolean full_build) { 8 build_stage 'Checkout' 9 def install_dir = pwd tmp: true 10 //checkout the source code and clean the repo 11 checkout scm 12 13 //Clean all temporary files to make sure no artifacts of the previous build remain 14 sh 'git clean -fdqx' 15 16 //Reset the git repo so no local changes persist 17 sh 'git reset --hard' 18 19 build_stage 'Build' 20 21 //Configure the conpilation (Output is not relevant) 22 //Use the current directory as the installation target so nothing 23 //escapes the sandbox 24 //Also specify the compiler by hand 25 sh "./configure CXX=${currentCC.cpp_cc} --with-backend-compiler=${currentCC.cfa_backend_cc} --prefix=${install_dir} --enable-silent-rules --quiet" 26 27 //Compile the project 28 sh 'make -j 8 --no-print-directory V=0 install' 29 30 build_stage 'Test' 31 32 //Run the tests from the tests directory 33 dir ('src/tests') { 34 if (full_build) { 35 sh 'make all-tests' 36 } 37 else { 38 sh 'make' 39 } 40 } 41 42 build_stage 'Cleanup' 43 44 //do a maintainer-clean to make sure we need to remake from scratch 45 sh 'make maintainer-clean > /dev/null' 46 } 47 48 def make_doc() { 49 def err = null 50 51 try { 52 sh 'make clean > /dev/null' 53 sh 'make > /dev/null 2>&1' 54 } 55 56 catch (Exception caughtError) { 57 //rethrow error later 58 err = caughtError 59 60 sh 'cat *.log' 61 } 62 63 finally { 64 /* Must re-throw exception to propagate error */ 65 if (err) { 66 throw err 67 } 68 } 69 } 70 71 def doc_build() { 72 stage 'Documentation' 73 74 status_prefix = 'Documentation' 75 76 dir ('doc/user') { 77 make_doc() 78 } 79 80 dir ('doc/refrat') { 81 make_doc() 82 } 83 } 84 85 def push_build() { 86 //Don't use the build_stage function which outputs the compiler 87 stage 'Push' 88 89 status_prefix = 'Push' 90 91 def out_dir = pwd tmp: true 92 sh "mkdir -p ${out_dir}" 93 94 //parse git logs to find what changed 95 sh "git remote > ${out_dir}/GIT_REMOTE" 96 git_remote = readFile("${out_dir}/GIT_REMOTE") 97 remoteDoLangExists = git_remote.contains("DoLang") 98 99 if( !remoteDoLangExists ) { 100 sh 'git remote add DoLang git@gitlab.do-lang.org:internal/cfa-cc.git' 101 } 102 103 sh "git push DoLang ${gitRefNewValue}:master" 104 } 105 106 //=========================================================================================================== 107 // Helper classes/variables/routines to make the status and stage name easier to use 108 //=========================================================================================================== 109 //Description of a compiler (Must be serializable since pipelines are persistent) 110 class CC_Desc implements Serializable { 111 public String cc_name 112 public String cpp_cc 113 public String cfa_backend_cc 114 115 CC_Desc(String cc_name, String cpp_cc, String cfa_backend_cc) { 116 this.cc_name = cc_name 117 this.cpp_cc = cpp_cc 118 this.cfa_backend_cc = cfa_backend_cc 119 } 120 } 121 122 //Global Variables defining the compiler and at which point in the build we are 123 // These variables are used but can't be declared before hand because of wierd scripting rules 124 // @Field String currentCC 125 // @Field String status_prefix 126 127 //Wrapper to sync stage name and status name 128 def build_stage(String name) { 129 def stage_name = "${currentCC.cc_name} ${name}".trim() 130 stage stage_name 131 132 status_prefix = stage_name 133 } 134 135 //Helper routine to collect information about the git history 136 def collect_git_info() { 137 138 //create the temporary output directory in case it doesn't already exist 139 def out_dir = pwd tmp: true 140 sh "mkdir -p ${out_dir}" 141 142 //parse git logs to find what changed 143 gitRefName = env.BRANCH_NAME 144 dir("../${gitRefName}@script") { 145 sh "git reflog > ${out_dir}/GIT_COMMIT" 146 } 147 git_reflog = readFile("${out_dir}/GIT_COMMIT") 148 gitRefOldValue = (git_reflog =~ /moving from (.+) to (.+)/)[0][1] 149 gitRefNewValue = (git_reflog =~ /moving from (.+) to (.+)/)[0][2] 150 } 151 152 //=========================================================================================================== 153 // Main loop of the compilation 154 //=========================================================================================================== 155 node ('master'){ 156 157 boolean doPromoteBuild2DoLang 158 def err = null 159 def log_needed = false 160 currentBuild.result = "SUCCESS" 161 status_prefix = '' 162 163 try { 164 //Prevent the build from exceeding 30 minutes 165 timeout(60) { 166 167 //Wrap build to add timestamp to command line 168 wrap([$class: 'TimestamperBuildWrapper']) { 169 170 collect_git_info() 171 172 properties ([ \ 173 [$class: 'ParametersDefinitionProperty', \ 174 parameterDefinitions: [ \ 175 [$class: 'BooleanParameterDefinition', \ 176 defaultValue: false, \ 177 description: 'If true, the build will be promoted to the do-lang git repository (on successful builds only)', \ 178 name: 'promoteBuild2DoLang' \ 179 ]] \ 180 ]]) 181 182 doPromoteBuild2DoLang = promoteBuild2DoLang == 'true' 183 184 echo "FULL BUILD = ${doPromoteBuild2DoLang}" 185 186 //Compile using gcc-4.9 187 currentCC = new CC_Desc('gcc-4.9', 'g++-4.9', 'gcc-4.9') 188 cfa_build(doPromoteBuild2DoLang) 189 190 //Compile latex documentation 191 doc_build() 192 193 if( doPromoteBuild2DoLang ) { 194 //Compile using gcc-5 195 currentCC = new CC_Desc('gcc-5', 'g++-5', 'gcc-5') 196 cfa_build(true) 197 198 //Compile using gcc-4.9 199 currentCC = new CC_Desc('gcc-6', 'g++-6', 'gcc-6') 200 cfa_build(true) 201 202 //Push latest changes to do-lang repo 203 push_build() 204 } 205 } 206 } 207 } 208 209 //If an exception is caught we need to change the status and remember to 210 //attach the build log to the email 211 catch (Exception caughtError) { 212 //rethrow error later 213 err = caughtError 214 215 //An error has occured, the build log is relevent 216 log_needed = true 217 218 //Store the result of the build log 219 currentBuild.result = "${status_prefix} FAILURE".trim() 220 } 221 222 finally { 223 //Send email with final results 224 notify_result(doPromoteBuild2DoLang, err, currentBuild.result, log_needed) 225 226 /* Must re-throw exception to propagate error */ 227 if (err) { 228 throw err 229 } 230 } 231 } 232 233 //=========================================================================================================== 234 //Routine responsible of sending the email notification once the build is completed 235 //=========================================================================================================== 236 def notify_result(boolean promote, Exception err, String status, boolean log) { 237 echo 'Build completed, sending result notification' 238 if(promote) { 239 if( err ) { 240 promote_email(status) 241 } 242 } 243 else { 244 email(status, log) 245 } 246 } 247 248 //Email notification on a full build failure 249 def promote_email(String status) { 250 //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line 251 //Configurations for email format 252 def email_subject = "[cforall git][PROMOTE - FAILURE]" 253 def email_body = """This is an automated email from the Jenkins build machine. It was 254 generated because of a git hooks/post-receive script following 255 a ref change was pushed to the repository containing 256 the project "UNNAMED PROJECT". 257 258 Check console output at ${env.BUILD_URL} to view the results. 259 260 - Status -------------------------------------------------------------- 261 262 PROMOTE FAILURE - ${status} 263 """ 264 265 def email_to = "pabuhr@uwaterloo.ca, rschlunt@uwaterloo.ca, a3moss@uwaterloo.ca, tdelisle@uwaterloo.ca, brice.dobry@huawei.com" 266 267 //send email notification 268 emailext body: email_body, subject: email_subject, to: email_to, attachLog: true 269 } 270 271 //Standard build email notification 272 def email(String status, boolean log) { 273 //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line 274 //Configurations for email format 275 def project_name = (env.JOB_NAME =~ /(.+)\/.+/)[0][1].toLowerCase() 276 277 def gitLog = 'Error retrieving git logs' 278 def gitDiff = 'Error retrieving git diff' 279 280 try { 281 282 sh "git rev-list --format=short ${gitRefOldValue}...${gitRefNewValue} > GIT_LOG" 283 gitLog = readFile('GIT_LOG') 284 285 sh "git diff --stat ${gitRefNewValue} ${gitRefOldValue} > GIT_DIFF" 286 gitDiff = readFile('GIT_DIFF') 287 } 288 catch (Exception error) {} 289 290 def email_subject = "[${project_name} git][BUILD# ${env.BUILD_NUMBER} - ${status}] - branch ${env.BRANCH_NAME}" 291 def email_body = """This is an automated email from the Jenkins build machine. It was 292 generated because of a git hooks/post-receive script following 293 a ref change was pushed to the repository containing 294 the project "UNNAMED PROJECT". 295 296 The branch ${env.BRANCH_NAME} has been updated. 297 via ${gitRefOldValue} (commit) 298 from ${gitRefNewValue} (commit) 299 300 Check console output at ${env.BUILD_URL} to view the results. 301 302 - Status -------------------------------------------------------------- 303 304 BUILD# ${env.BUILD_NUMBER} - ${status} 305 306 - Log ----------------------------------------------------------------- 307 ${gitLog} 308 ----------------------------------------------------------------------- 309 Summary of changes: 310 ${gitDiff} 311 """ 312 313 def email_to = "pabuhr@uwaterloo.ca, rschlunt@uwaterloo.ca, a3moss@uwaterloo.ca, tdelisle@uwaterloo.ca, brice.dobry@huawei.com" 314 315 //send email notification 316 emailext body: email_body, subject: email_subject, to: email_to, attachLog: log 317 } 1 node ('linux'){ 2 stage 'Build' 3 checkout scm //checkout the source code from source control 4 sh 'CC=gcc-4.9 CXX=g++-4.9 ./configure' 5 sh 'make -j 8' 6 } -
Makefile.am
rf80e0218 r1b5c81ed 11 11 ## Created On : Sun May 31 22:14:18 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Fri Jun 17 14:56:18201614 ## Update Count : 1 313 ## Last Modified On : Mon Jan 25 22:16:13 2016 14 ## Update Count : 10 15 15 ############################################################################### 16 16 … … 20 20 BACKEND_CC = @BACKEND_CC@ # C compiler used to compile Cforall programs, versus C++ compiler used to build cfa command 21 21 22 MAINTAINERCLEANFILES = lib/* bin/* src/examples/.deps/* src/tests/.deps/* src/tests/.out/*22 MAINTAINERCLEANFILES = lib/* bin/* -
Makefile.in
rf80e0218 r1b5c81ed 51 51 CONFIG_CLEAN_FILES = 52 52 CONFIG_CLEAN_VPATH_FILES = 53 AM_V_GEN = $(am__v_GEN_@AM_V@)54 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)55 am__v_GEN_0 = @echo " GEN " $@;56 AM_V_at = $(am__v_at_@AM_V@)57 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)58 am__v_at_0 = @59 53 SOURCES = 60 54 DIST_SOURCES = … … 117 111 ALLOCA = @ALLOCA@ 118 112 AMTAR = @AMTAR@ 119 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@120 113 AUTOCONF = @AUTOCONF@ 121 114 AUTOHEADER = @AUTOHEADER@ … … 125 118 CC = @CC@ 126 119 CCDEPMODE = @CCDEPMODE@ 127 CFA_BACKEND_CC = @CFA_BACKEND_CC@128 120 CFA_BINDIR = @CFA_BINDIR@ 129 121 CFA_INCDIR = @CFA_INCDIR@ … … 144 136 EGREP = @EGREP@ 145 137 EXEEXT = @EXEEXT@ 138 GCC_PATH = @GCC_PATH@ 146 139 GREP = @GREP@ 147 140 INSTALL = @INSTALL@ … … 222 215 SUBDIRS = src/driver src src/libcfa # order important, src before libcfa because cfa-cpp used to build prelude 223 216 EXTRA_DIST = Docs # non-source files 224 MAINTAINERCLEANFILES = lib/* bin/* src/examples/.deps/* src/tests/.deps/* src/tests/.out/*217 MAINTAINERCLEANFILES = lib/* bin/* 225 218 all: config.h 226 219 $(MAKE) $(AM_MAKEFLAGS) all-recursive -
aclocal.m4
rf80e0218 r1b5c81ed 899 899 AC_MSG_RESULT(yes)]) 900 900 901 # Copyright (C) 2009, 2011 Free Software Foundation, Inc.902 #903 # This file is free software; the Free Software Foundation904 # gives unlimited permission to copy and/or distribute it,905 # with or without modifications, as long as this notice is preserved.906 907 # serial 2908 909 # AM_SILENT_RULES([DEFAULT])910 # --------------------------911 # Enable less verbose build rules; with the default set to DEFAULT912 # (`yes' being less verbose, `no' or empty being verbose).913 AC_DEFUN([AM_SILENT_RULES],914 [AC_ARG_ENABLE([silent-rules],915 [ --enable-silent-rules less verbose build output (undo: `make V=1')916 --disable-silent-rules verbose build output (undo: `make V=0')])917 case $enable_silent_rules in918 yes) AM_DEFAULT_VERBOSITY=0;;919 no) AM_DEFAULT_VERBOSITY=1;;920 *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;921 esac922 dnl923 dnl A few `make' implementations (e.g., NonStop OS and NextStep)924 dnl do not support nested variable expansions.925 dnl See automake bug#9928 and bug#10237.926 am_make=${MAKE-make}927 AC_CACHE_CHECK([whether $am_make supports nested variables],928 [am_cv_make_support_nested_variables],929 [if AS_ECHO([['TRUE=$(BAR$(V))930 BAR0=false931 BAR1=true932 V=1933 am__doit:934 @$(TRUE)935 .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then936 am_cv_make_support_nested_variables=yes937 else938 am_cv_make_support_nested_variables=no939 fi])940 if test $am_cv_make_support_nested_variables = yes; then941 dnl Using `$V' instead of `$(V)' breaks IRIX make.942 AM_V='$(V)'943 AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'944 else945 AM_V=$AM_DEFAULT_VERBOSITY946 AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY947 fi948 AC_SUBST([AM_V])dnl949 AM_SUBST_NOTMAKE([AM_V])dnl950 AC_SUBST([AM_DEFAULT_V])dnl951 AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl952 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl953 AM_BACKSLASH='\'954 AC_SUBST([AM_BACKSLASH])dnl955 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl956 ])957 958 901 # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. 959 902 # -
config.h.in
rf80e0218 r1b5c81ed 1 1 /* config.h.in. Generated from configure.ac by autoheader. */ 2 3 /* Location of include files. */4 #undef CFA_BACKEND_CC5 2 6 3 /* Location of cfa command. */ … … 23 20 /* Define to 1 if using `alloca.c'. */ 24 21 #undef C_ALLOCA 22 23 /* Path/name of C compiler. */ 24 #undef GCC_PATH 25 25 26 26 /* Define to 1 if you have `alloca', as a function or macro. */ -
configure
rf80e0218 r1b5c81ed 643 643 CFA_INCDIR 644 644 CFA_PREFIX 645 CFA_BACKEND_CC646 645 BACKEND_CC 646 GCC_PATH 647 647 MAINT 648 648 MAINTAINER_MODE_FALSE … … 671 671 INSTALL_SCRIPT 672 672 INSTALL_PROGRAM 673 AM_BACKSLASH674 AM_DEFAULT_VERBOSITY675 AM_DEFAULT_V676 AM_V677 673 target_alias 678 674 host_alias … … 716 712 ac_user_opts=' 717 713 enable_option_checking 718 enable_silent_rules719 714 enable_maintainer_mode 720 715 with_backend_compiler … … 1351 1346 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) 1352 1347 --enable-FEATURE[=ARG] include FEATURE [ARG=yes] 1353 --enable-silent-rules less verbose build output (undo: `make V=1')1354 --disable-silent-rules verbose build output (undo: `make V=0')1355 1348 --disable-maintainer-mode disable make rules and dependencies not useful 1356 1349 (and sometimes confusing) to the casual installer … … 2415 2408 ac_config_headers="$ac_config_headers config.h" 2416 2409 2417 # Check whether --enable-silent-rules was given.2418 if test "${enable_silent_rules+set}" = set; then :2419 enableval=$enable_silent_rules;2420 fi2421 2422 case $enable_silent_rules in2423 yes) AM_DEFAULT_VERBOSITY=0;;2424 no) AM_DEFAULT_VERBOSITY=1;;2425 *) AM_DEFAULT_VERBOSITY=1;;2426 esac2427 am_make=${MAKE-make}2428 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&52429 $as_echo_n "checking whether $am_make supports nested variables... " >&6; }2430 if ${am_cv_make_support_nested_variables+:} false; then :2431 $as_echo_n "(cached) " >&62432 else2433 if $as_echo 'TRUE=$(BAR$(V))2434 BAR0=false2435 BAR1=true2436 V=12437 am__doit:2438 @$(TRUE)2439 .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then2440 am_cv_make_support_nested_variables=yes2441 else2442 am_cv_make_support_nested_variables=no2443 fi2444 fi2445 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&52446 $as_echo "$am_cv_make_support_nested_variables" >&6; }2447 if test $am_cv_make_support_nested_variables = yes; then2448 AM_V='$(V)'2449 AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'2450 else2451 AM_V=$AM_DEFAULT_VERBOSITY2452 AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY2453 fi2454 AM_BACKSLASH='\'2455 2456 2410 2457 2411 if test "x${CXXFLAGS}" = "x"; then … … 2968 2922 # Check whether --with-backend-compiler was given. 2969 2923 if test "${with_backend_compiler+set}" = set; then : 2970 withval=$with_backend_compiler; backendcompiler=$withval 2971 else 2972 backendcompiler="" 2973 fi 2974 2975 if test "x$backendcompiler" != x; then 2976 BACKEND_CC=${backendcompiler} 2977 else 2924 withval=$with_backend_compiler; backcompiler=$withval 2925 else 2926 backcompiler="" 2927 fi 2928 2929 if test x$backcompiler != x; then 2930 cat >>confdefs.h <<_ACEOF 2931 #define GCC_PATH "${backcompiler}" 2932 _ACEOF 2933 2934 BACKEND_CC=${backcompiler} 2935 else 2978 2936 # Extract the first word of "gcc", so it can be a program name with args. 2979 2937 set dummy gcc; ac_word=$2 2980 2938 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 2981 2939 $as_echo_n "checking for $ac_word... " >&6; } 2982 if ${ac_cv_path_ BACKEND_CC+:} false; then :2940 if ${ac_cv_path_GCC_PATH+:} false; then : 2983 2941 $as_echo_n "(cached) " >&6 2984 2942 else 2985 case $ BACKEND_CCin2943 case $GCC_PATH in 2986 2944 [\\/]* | ?:[\\/]*) 2987 ac_cv_path_ BACKEND_CC="$BACKEND_CC" # Let the user override the test with a path.2945 ac_cv_path_GCC_PATH="$GCC_PATH" # Let the user override the test with a path. 2988 2946 ;; 2989 2947 *) … … 2995 2953 for ac_exec_ext in '' $ac_executable_extensions; do 2996 2954 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 2997 ac_cv_path_ BACKEND_CC="$as_dir/$ac_word$ac_exec_ext"2955 ac_cv_path_GCC_PATH="$as_dir/$ac_word$ac_exec_ext" 2998 2956 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 2999 2957 break 2 … … 3003 2961 IFS=$as_save_IFS 3004 2962 2963 test -z "$ac_cv_path_GCC_PATH" && ac_cv_path_GCC_PATH="N/A" 3005 2964 ;; 3006 2965 esac 3007 2966 fi 3008 BACKEND_CC=$ac_cv_path_BACKEND_CC 3009 if test -n "$ BACKEND_CC"; then3010 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ BACKEND_CC" >&53011 $as_echo "$ BACKEND_CC" >&6; }2967 GCC_PATH=$ac_cv_path_GCC_PATH 2968 if test -n "$GCC_PATH"; then 2969 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCC_PATH" >&5 2970 $as_echo "$GCC_PATH" >&6; } 3012 2971 else 3013 2972 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 … … 3016 2975 3017 2976 3018 if test " x$BACKEND_CC" = "x"; then2977 if test "$GCC_PATH" = "N/A"; then 3019 2978 as_fn_error $? "some version of gcc is needed. Get it at ftp://ftp.gnu.org" "$LINENO" 5 3020 2979 exit 1 3021 2980 fi 3022 fi3023 2981 3024 2982 cat >>confdefs.h <<_ACEOF 3025 #define CFA_BACKEND_CC "${BACKEND_CC}" 3026 _ACEOF 3027 2983 #define GCC_PATH "${GCC_PATH}" 2984 _ACEOF 2985 2986 BACKEND_CC=${GCC_PATH} 2987 fi 3028 2988 3029 2989 … … 5797 5757 5798 5758 5799 ac_config_files="$ac_config_files Makefile src/driver/Makefile src/Makefile src/examples/Makefile src/ tests/Makefile src/libcfa/Makefile"5759 ac_config_files="$ac_config_files Makefile src/driver/Makefile src/Makefile src/examples/Makefile src/libcfa/Makefile" 5800 5760 5801 5761 … … 6543 6503 "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; 6544 6504 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; 6545 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;;6546 6505 "src/libcfa/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcfa/Makefile" ;; 6547 6506 -
configure.ac
rf80e0218 r1b5c81ed 7 7 #AC_CONFIG_SRCDIR([src/main.cc]) 8 8 AC_CONFIG_HEADERS([config.h]) 9 AM_SILENT_RULES([no])10 9 11 10 if test "x${CXXFLAGS}" = "x"; then … … 20 19 # Installation paths 21 20 22 AC_ARG_WITH(backend-compiler, 23 [ --with-backend-compiler=PROGRAM PROGRAM that performs the final code compilation (must be gcc-compatible) ], 24 backendcompiler=$withval, backendcompiler="") 25 if test "x$backendcompiler" != x; then 26 BACKEND_CC=${backendcompiler} 27 else 28 AC_PATH_PROG(BACKEND_CC, gcc, []) 29 if test "x$BACKEND_CC" = "x"; then 21 AC_ARG_WITH(backend-compiler, 22 [ --with-backend-compiler=PROGRAM PROGRAM that performs the final code compilation (must be gcc-compatible) ], 23 backcompiler=$withval, backcompiler="") 24 if test x$backcompiler != x; then 25 AC_DEFINE_UNQUOTED(GCC_PATH, "${backcompiler}") 26 BACKEND_CC=${backcompiler} 27 else 28 AC_PATH_PROG(GCC_PATH, gcc, N/A) 29 if test "$GCC_PATH" = "N/A"; then 30 30 AC_MSG_ERROR(some version of gcc is needed. Get it at ftp://ftp.gnu.org) 31 31 exit 1 32 32 fi 33 fi 34 AC_DEFINE_UNQUOTED(CFA_BACKEND_CC, "${BACKEND_CC}", [Location of include files.]) 35 AC_SUBST(CFA_BACKEND_CC) 33 AC_DEFINE_UNQUOTED(GCC_PATH, "${GCC_PATH}", [Path/name of C compiler.]) 34 BACKEND_CC=${GCC_PATH} 35 fi 36 AC_SUBST(BACKEND_CC) 36 37 37 38 if test "x$prefix" = "xNONE"; then … … 39 40 else 40 41 cfa_prefix=${prefix} 41 fi 42 fi 42 43 AC_DEFINE_UNQUOTED(CFA_PREFIX, "${cfa_prefix}", [Location of cfa install.]) 43 44 AC_SUBST(CFA_PREFIX, ${cfa_prefix}) … … 47 48 else 48 49 cfa_incdir=${includedir} 49 fi 50 fi 50 51 AC_DEFINE_UNQUOTED(CFA_INCDIR, "${cfa_incdir}", [Location of include files.]) 51 52 AC_SUBST(CFA_INCDIR, ${cfa_incdir}) … … 55 56 else 56 57 cfa_bindir=${bindir} 57 fi 58 fi 58 59 AC_DEFINE_UNQUOTED(CFA_BINDIR, "${cfa_bindir}", [Location of cfa command.]) 59 60 AC_SUBST(CFA_BINDIR, ${cfa_bindir}) … … 63 64 else 64 65 cfa_libdir=${libdir} 65 fi 66 fi 66 67 AC_DEFINE_UNQUOTED(CFA_LIBDIR, "${cfa_libdir}", [Location of cc1 and cfa-cpp commands.]) 67 68 AC_SUBST(CFA_LIBDIR, ${cfa_libdir}) … … 106 107 src/Makefile 107 108 src/examples/Makefile 108 src/tests/Makefile109 109 src/libcfa/Makefile 110 110 ]) -
doc/LaTeXmacros/common.tex
rf80e0218 r1b5c81ed 11 11 %% Created On : Sat Apr 9 10:06:17 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Mon Jun 20 09:35:20201614 %% Update Count : 1 7813 %% Last Modified On : Sat Apr 9 10:06:39 2016 14 %% Update Count : 1 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 17 17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 18 18 19 \setlength{\textheight}{9in}20 %\oddsidemargin 0.0in21 \renewcommand{\topfraction}{0.8} % float must be greater than X of the page before it is forced onto its own page22 \renewcommand{\bottomfraction}{0.8} % float must be greater than X of the page before it is forced onto its own page23 \renewcommand{\floatpagefraction}{0.8} % float must be greater than X of the page before it is forced onto its own page24 \renewcommand{\textfraction}{0.0} % the entire page maybe devoted to floats with no text on the page at all25 26 \lefthyphenmin=427 \righthyphenmin=428 29 \usepackage{pslatex} % reduce size of san serif font30 31 \usepackage[ignoredisplayed]{enumitem} % do not affect trivlist32 \setlist{labelsep=1ex}% global33 \setlist[itemize]{topsep=0.5ex,parsep=0.25ex,itemsep=0.25ex,listparindent=\parindent,leftmargin=\parindent}% global34 \setlist[itemize,1]{label=\textbullet}% local35 %\renewcommand{\labelitemi}{{\raisebox{0.25ex}{\footnotesize$\bullet$}}}36 \setlist[enumerate]{listparindent=\parindent}% global37 \setlist[enumerate,2]{leftmargin=\parindent,labelsep=*,align=parleft,label=\alph*.}% local38 \setlist[description]{listparindent=\parindent,leftmargin=\parindent,labelsep=*}39 40 19 % Names used in the document. 41 20 42 \newcommand{\CFA}{C$\mathbf\forall$\xspace} % set language symbolic name43 \newcommand{\CFL}{Cforall\xspace} % set language text name44 \newcommand{\CC}{ \rmC\kern-.1em\hbox{+\kern-.25em+}\xspace} % CC symbolic name21 \newcommand{\CFA}{C$\mathbf\forall$\xspace} % set language symbolic name 22 \newcommand{\CFL}{Cforall\xspace} % set language text name 23 \newcommand{\CC}{C\kern-.1em\hbox{+\kern-.25em+}\xspace} % CC symbolic name 45 24 \def\c11{ISO/IEC C} % C11 name (cannot have numbers in latex command name) 46 25 … … 48 27 49 28 \makeatletter 50 % parindent is relative, i.e., toggled on/off in environments like itemize, so store the value for51 % use rather than use \parident directly.52 \newlength{\parindentlnth}53 \setlength{\parindentlnth}{\parindent}54 55 29 % allow escape sequence in lstinline 56 30 %\usepackage{etoolbox} 57 31 %\patchcmd{\lsthk@TextStyle}{\let\lst@DefEsc\@empty}{}{}{\errmessage{failed to patch}} 58 32 59 \usepackage{pslatex} % reduce size of san serif font 60 \usepackage{relsize} % must be after change to small or selects old size 33 % make fontsize "small" slightly larger, specifically for san serif (helvetica) in program code 34 \renewcommand\small{% 35 \@setfontsize\small{8.5}{11}% 36 \abovedisplayskip 8.5pt \@plus 3pt \@minus 4pt 37 \abovedisplayshortskip \z@ \@plus 2pt 38 \belowdisplayshortskip 4pt \@plus 2pt \@minus 2pt 39 \def\@listi{\leftmargin\leftmargini 40 \topsep 4pt \@plus 2pt \@minus 2pt 41 \parsep 2pt \@pluspt \@minuspt 42 \itemsep \parsep}% 43 \belowdisplayskip \abovedisplayskip 44 } 45 \usepackage{relsize} % must be after change to small or selects old size 61 46 62 47 % reduce size of chapter/section titles … … 81 66 \vskip 50\p@ 82 67 }} 83 \renewcommand\section{\@startsection{section}{1}{\z@}{-3. 5ex \@plus -1ex \@minus -.2ex}{1.75ex \@plus .2ex}{\normalfont\large\bfseries}}84 \renewcommand\subsection{\@startsection{subsection}{2}{\z@}{- 3.25ex \@plus -1ex \@minus -.2ex}{1.5ex \@plus .2ex}{\normalfont\normalsize\bfseries}}68 \renewcommand\section{\@startsection{section}{1}{\z@}{-3.0ex \@plus -1ex \@minus -.2ex}{1.0ex \@plus .2ex}{\normalfont\large\bfseries}} 69 \renewcommand\subsection{\@startsection{subsection}{2}{\z@}{-2.5ex \@plus -1ex \@minus -.2ex}{1.0ex \@plus .2ex}{\normalfont\normalsize\bfseries}} 85 70 \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}{-2.5ex \@plus -1ex \@minus -.2ex}{1.0ex \@plus .2ex}{\normalfont\normalsize\bfseries}} 86 71 \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}{-2.0ex \@plus -1ex \@minus -.2ex}{-1em}{\normalfont\normalsize\bfseries}} … … 90 75 \newcommand{\definition}[1]{\textbf{\hyperpage{#1}}} 91 76 \newcommand{\see}[1]{\emph{see} #1} 77 78 % reduce bullet size and spacing for "itemize" macro 79 \renewcommand{\labelitemi}{{\raisebox{0.25ex}{\footnotesize$\bullet$}}} 80 \renewenvironment{itemize}{\begin{list}{\labelitemi}{\topsep=5pt\itemsep=5pt\parsep=0pt}}{\end{list}} 92 81 93 82 % Define some commands that produce formatted index entries suitable for cross-references. … … 120 109 \newcommand{\@sIndex}[2][\@empty]{#2\ifx#1\@empty\index{#2}\else\index{#1@{\protect#2}}\fi} 121 110 122 \newcommand{\Indexc}[1]{\lstinline$#1$\index{#1@\lstinline$#1$}}123 \newcommand{\indexc}[1]{\index{#1@\lstinline$#1$}}124 125 111 \newcommand{\newtermFontInline}{\emph} 126 112 \newcommand{\newterm}{\@ifstar\@snewterm\@newterm} … … 130 116 131 117 \newenvironment{quote2}{% 132 \list{}{\lstset{resetmargins=true ,aboveskip=0pt,belowskip=0pt}\topsep=4pt\parsep=0pt\leftmargin=\parindent\rightmargin\leftmargin}%118 \list{}{\lstset{resetmargins=true}\leftmargin=\parindent\rightmargin\leftmargin}% 133 119 \item\relax 134 120 }{% … … 136 122 }% quote2 137 123 \newenvironment{rationale}{% 138 \begin{quot e2}\noindent$\Box$\enspace124 \begin{quotation}\noindent$\Box$\enspace 139 125 }{% 140 \hfill\enspace$\Box$\end{quot e2}126 \hfill\enspace$\Box$\end{quotation} 141 127 }% 142 128 143 129 % blocks and titles 144 130 \newcommand{\define}[1]{\emph{#1\/}\index{#1}} 131 \newcommand{\rewrite}{\(\Rightarrow\)} 145 132 \newcommand{\rewriterules}{\paragraph{Rewrite Rules}~\par\noindent} 146 133 \newcommand{\examples}{\paragraph{Examples}~\par\noindent} … … 150 137 151 138 % BNF macros 152 \newenvironment{syntax}{ 153 \paragraph{Syntax} 154 \begin{quote2} 155 \begin{description}[noitemsep,leftmargin=\parindentlnth] 156 }{ 157 \end{description} 158 \end{quote2} 159 } 160 % \def\syntax{\paragraph{Syntax}\trivlist\parindent=.5in\item[\hskip.5in]} 161 %\let\endsyntax=\endtrivlist 162 \newcommand{\lhs}[1]{\item[\emph{#1:}\index{#1@{\emph{#1}}|italic}]~\ignorespaces} 163 \newcommand{\oldlhs}[1]{\item[\emph{#1:}\index{#1@{\emph{#1}}|italic}~\dots]~} 164 \newcommand{\rhs}{\hfil\newline} 165 \newcommand{\nonterm}[1]{\emph{#1}\index{#1@{\emph{#1}}|italic}} 139 \def\syntax{\paragraph{Syntax}\trivlist\parindent=.5in\item[\hskip.5in]} 140 \let\endsyntax=\endtrivlist 141 \newcommand{\lhs}[1]{\par{\emph{#1:}}\index{#1@{\emph{#1}}|italic}} 142 \newcommand{\rhs}{\hfil\break\hbox{\hskip1in}} 143 \newcommand{\oldlhs}[1]{\emph{#1: \ldots}\index{#1@{\emph{#1}}|italic}} 144 \newcommand{\nonterm}[1]{\emph{#1\/}\index{#1@{\emph{#1}}|italic}} 166 145 \newcommand{\opt}{$_{opt}$\ } 167 146 … … 200 179 fallthru,finally,forall,ftype,_Generic,_Imaginary,inline,__label__,lvalue,_Noreturn,otype,restrict,_Static_assert, 201 180 _Thread_local,throw,throwResume,trait,try,typeof,__typeof,__typeof__,}, 181 moredelim=**[is][\color{red}]{`}{`}, % red highlighting of program text 202 182 }% 203 183 … … 205 185 language=CFA, 206 186 columns=flexible, 207 basicstyle=\linespread{0.9}\sf, 208 stringstyle=\tt, 187 basicstyle=\sf\relsize{-1}, 209 188 tabsize=4, 210 xleftmargin=\parindentlnth, 211 extendedchars=true, 212 escapechar=§, 189 xleftmargin=\parindent, 190 escapechar=@, 213 191 mathescape=true, 214 192 keepspaces=true, 215 193 showstringspaces=false, 216 194 showlines=true, 217 aboveskip=4pt, 218 belowskip=3pt, 219 moredelim=**[is][\color{red}]{®}{®}, % red highlighting 220 moredelim=**[is][\color{blue}]{ß}{ß}, % blue highlighting 221 moredelim=**[is][\color{OliveGreen}]{¢}{¢}, % green highlighting 222 moredelim=[is][\lstset{keywords={}}]{¶}{¶}, % temporarily turn off keywords 223 % replace/adjust listing characters that look bad in sanserif 224 literate={-}{\raisebox{-0.15ex}{\texttt{-}}}1 {^}{\raisebox{0.6ex}{$\scriptscriptstyle\land\,$}}1 225 {~}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}}1 {_}{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}1 {`}{\ttfamily\upshape\hspace*{-0.1ex}`}1 226 {<-}{$\leftarrow$}2 {=>}{$\Rightarrow$}2 {...}{$\dots$}2, 195 aboveskip=6pt, 196 belowskip=4pt, 197 literate={\\`}{\raisebox{0.3ex}{\ttfamily\upshape \hspace*{-2pt}`}}1, % escape \`, otherwise used for red highlighting 227 198 }% 228 199 229 \lstMakeShortInline© % single-character for \lstinline 200 \makeatletter 201 % replace/adjust listings characters that look bad in sanserif 202 \lst@CCPutMacro 203 \lst@ProcessOther{"22}{\lst@ttfamily{"}{\raisebox{0.3ex}{\ttfamily\upshape "}}} % replace double quote 204 \lst@ProcessOther{"27}{\lst@ttfamily{'}{\raisebox{0.3ex}{\ttfamily\upshape '\hspace*{-2pt}}}} % replace single quote 205 \lst@ProcessOther{"2D}{\lst@ttfamily{-}{\ttfamily\upshape -}} % replace minus 206 \lst@ProcessOther{"3C}{\lst@ttfamily{<}{\texttt{<}}} % replace less than 207 \lst@ProcessOther{"3E}{\lst@ttfamily{<}{\texttt{>}}} % replace greater than 208 \lst@ProcessOther{"5E}{\raisebox{0.4ex}{$\scriptstyle\land\,$}} % replace circumflex 209 \lst@ProcessOther{"5F}{\lst@ttfamily{\char95}{{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}}} % replace underscore 210 \lst@ProcessOther{"60}{\lst@ttfamily{`}{\raisebox{0.3ex}{\ttfamily\upshape \hspace*{-2pt}`}}} % replace backquote 211 \lst@ProcessOther{"7E}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}} % replace tilde 212 %\lst@ProcessOther{"7E}{\raisebox{-.4ex}[1ex][0pt]{\textasciitilde}} % lower tilde 213 \@empty\z@\@empty % NECESSARY DO NOT REMOVE 214 \makeatother 230 215 231 216 % Local Variables: % -
doc/bibliography/cfa.bib
-
Property mode
changed from
100644to120000
rf80e0218 r1b5c81ed 1 % Conventions: uncross-referenced entries appear first, then 2 % cross-referenced entries. In both groups, entries are sorted by their 3 % title field. Lines like "% A" exist to speed searches. The main 4 % paper on a language uses the language name as the citation key. Other 5 % papers use ``<language name>:'' as a prefix. Please consider leaving 6 % keyword lists and an abstract or comment for future generations, and 7 % put some identification in a contributer field. 8 9 % Predefined journal names: 10 % acmcs: Computing Surveys acta: Acta Infomatica 11 % cacm: Communications of the ACM 12 % ibmjrd: IBM J. Research & Development ibmsj: IBM Systems Journal 13 % ieeese: IEEE Trans. on Soft. Eng. ieeetc: IEEE Trans. on Computers 14 % ieeetcad: IEEE Trans. on Computer-Aided Design of Integrated Circuits 15 % ipl: Information Processing Letters jacm: Journal of the ACM 16 % jcss: J. Computer & System Sciences scp: Science of Comp. Programming 17 % sicomp: SIAM J. on Computing tocs: ACM Trans. on Comp. Systems 18 % tods: ACM Trans. on Database Sys. tog: ACM Trans. on Graphics 19 % toms: ACM Trans. on Math. Software toois: ACM Trans. on Office Info. Sys. 20 % toplas: ACM Trans. on Prog. Lang. & Sys. 21 % tcs: Theoretical Computer Science 22 @string{ieeepds="IEEE Transactions on Parallel and Distributed Systems"} 23 @string{ieeese="IEEE Transactions on Software Engineering"} 24 @string{spe="Software---\-Practice and Experience"} 25 @string{sigplan="SIGPLAN Notices"} 26 @string{joop="Journal of Object-Oriented Programming"} 27 @string{popl="Conference Record of the ACM Symposium on Principles of Programming Languages"} 28 @string{osr="Operating Systems Review"} 29 @string{pldi="Programming Language Design and Implementation"} 30 31 % A 32 33 @incollection{ABC++, 34 keywords = {concurrency, parallel, distributed, C++}, 35 contributer = {pabuhr@plg}, 36 author = {William G. O'Farrell and Frank Ch. Eigler and S. David Pullara and Gregory V. Wilson }, 37 title = {{ABC}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 38 editor = {Gregory V. Wilson and Paul Lu}, 39 booktitle = {Parallel Programming in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 40 publisher = {MIT Press}, 41 series = {Scientific and Engineering Computation Series}, 42 year = 1996, 43 pages = {1-42}, 44 } 45 46 @techreport{CL90abstract, 47 keywords = {}, 48 contributer = {gjditchfield@plg}, 49 author = {Luca Cardelli and Xavier Leroy}, 50 title = {Abstract Types and the Dot Notation}, 51 institution = {Systems Research Center}, 52 year = 1990, 53 address = {130 Lytton Avenue, Palo Alto, CA 94301}, 54 number = 56, 55 summary = { 56 The existential types of Mitchell and Plotkin \cite{atet} model 57 abstract types, but their ``open'' notation is unlike the usual dot 58 notation used in programming languages. This paper gives 59 translations between the ``open'' and ``dot'' forms, and suggests 60 extensions for nested and for parameterized abstractions. 61 } 62 } 63 64 @article{atet, 65 keywords = {lambda calculus, polymorphism}, 66 contributer = {gjditchfield@plg}, 67 author = {John C. Mitchell and Gordon D. Plotkin}, 68 title = {Abstract Types have Existential Type}, 69 journal = toplas, 70 year = 1988, 71 month = jul, volume = 10, number = 3, pages = {470-502}, 72 abstract = { 73 Abstract data type declarations appear in typed programming 74 languages like Ada, Alphard, CLU and ML. This form of declaration 75 binds a list of identifiers to a type with associated operations, a 76 composite ``value'' we call a {\em data algebra}. We use a 77 second-order typed lambda calculus SOL to show how data algebras 78 may be given types, passed as parameters, and returned as results of 79 function calls. In the process, we discuss the semantics of 80 abstract data type declarations and review a connection between 81 typed programming languages and constructive logic. 82 } 83 } 84 85 @article{alphard:intro, 86 keywords = {encapsulation, data abstraction}, 87 contributer = {gjditchfield@plg}, 88 author = {Wm. A. Wulf and Ralph L. London and Mary Shaw}, 89 title = {Abstraction and Verification in Alphard: Introduction to Language and Methodology}, 90 journal = ieeese, 91 year = 1976, 92 month = dec, volume = {SE-2}, number = 4, pages = {253-265}, 93 note = {Reprinted in \cite{alphard}.}, 94 abstract = { 95 Alphard is a programming language whose goals include supporting 96 both the development of well-structured programs and the formal 97 verification of these programs. This paper attempts to capture the 98 symbiotic influence of these two goals on the design of the 99 language. To that end the language description is interleaved with 100 the presentation of a proof technique and discudssion of 101 programming methodology. Examples to illustrate both the language 102 and the verification technique are included. 103 } 104 } 105 106 @book{Hilfinger83, 107 keywords = {ada}, 108 author = {Paul N. Hilfinger}, 109 title = {Abstraction Mechanisms and Language Design}, 110 publisher = {MIT Press}, 111 series = {ACM Distinguished Dissertations}, 112 year = 1983, 113 } 114 115 @incollection{Lavender96, 116 author = {R. Greg Lavender and Douglas C. Schmidt}, 117 chapter = {Active Object: An Object Behavioral Pattern for Concurrent Programming}, 118 title = {Pattern Languages of Program Design 2}, 119 editor = {John M. Vlissides and James O. Coplien and Norman L. Kerth}, 120 year = 1996, 121 pages = {483-499}, 122 publisher = {Addison-Wesley Longman Publishing Co., Inc.}, 123 address = {Boston, MA, USA}, 124 } 125 126 @article{Nierstrasz87, 127 keywords = {Hybrid, active objects, object-oriented languages, 128 object-based languages, delegation, concurrency}, 129 contributer = {pabuhr@plg}, 130 author = {O. M. Nierstrasz}, 131 title = {Active Objects in {Hybrid}}, 132 journal = sigplan, 133 volume = 22, 134 number = 12, 135 month = dec, 136 year = 1987, 137 pages = {243-253}, 138 note = {Proceedings of the OOPSLA'87 Conference, Oct. 4--8, 1987, Orlando, Florida}, 139 abstract = { 140 Most object-oriented languages are strong on reusability or on 141 strong-typing, but weak on concurrency. In response to this gap, 142 we are developing {\it Hybrid}, an object-oriented language in which 143 objects are the active entities. Objects in Hybrid are organized 144 into {\it domains}, and concurrent executions into {\it activities}. 145 All object communications are based on remote procedure calls. 146 Unstructured {\it sends\/} and {\it accepts\/} are forbidden. To 147 this the mechanisms of {\it delegation\/} and {\it delay queues\/} 148 are added to enable switching and triggering of activities. 149 Concurrent subactivities and atomic actions are provided for 150 compactness and simplicity. We show how solutions to many important 151 concurrent problems [sic], such as pipelining, constraint management 152 and ``administration'' can be compactly expressed using these 153 mechanisms. 154 }, 155 comment = {Mentions Thoth in reference to delegation} 156 } 157 158 @book{Actors, 159 keywords = {actors, concurrency}, 160 contributer = {pabuhr@plg}, 161 author = {Gul A. Agha}, 162 title = {Actors: A Model of Concurrent Computation in Distributed Systems}, 163 publisher = {MIT Press, Cambridge, Mass.}, 164 year = 1986 165 } 166 167 @article{polymorphImpl, 168 keywords = {Napier88}, 169 contributer = {gjditchfield@plg}, 170 author = {R. Morrison and A. Dearle and R. C. H. Connor and A. L. Brown}, 171 title = {An Ad Hoc Approach to the Implementation of Polymorphism}, 172 journal = toplas, 173 year = 1991, 174 month = jul, 175 volume = 13, 176 number = 3, 177 pages = {342-371}, 178 abstract = { 179 Polymorphic abstraction provides the ability to write programs that 180 are independent of the form of the data over which they operate. 181 There are a number of different categories of polymorphic 182 expression---ad hoc and universal, which includes parametric and 183 inclusion---all of which have many advantages in terms of code 184 reuse and software economics. It has proved difficult to provide 185 efficient implementations of polymorphism. Here, we address this 186 problem and describe a new technique that can implement all forms 187 of polymorphism, use a conventional machine architecture, and 188 support nonuniform data representations. Furthermore, the method 189 ensures that any extra cost of implementation applies to 190 polymorphic forms only, and allows such polymorphic forms to 191 persist over program invocations. 192 }, 193 summary = { 194 They give three ways to implement polymorphism: {\em textual 195 polymorphism}, which seems to be template instantiation, {\em 196 uniform polymorphism}, which they explain badly, and {\em tagged 197 polymorphism}, where object code performs type tests. 198 199 They use first-class procedures to implement polymorphism: routines 200 with type parameters are implemented as curried routines that 201 return a nested routine that refers to the type parameter. 202 } 203 } 204 205 @article{dim:ada, 206 keywords = {Dimensional Analysis, Ada}, 207 contributer = {gjditchfield@plg}, 208 author = {Paul N. Hilfinger}, 209 title = {An {Ada} Package for Dimensional Analysis}, 210 journal = toplas, 211 month = apr, 212 year = 1988, 213 volume = 10, 214 number = 2, 215 pages = {189-203}, 216 } 217 218 @mastersthesis{Younger91, 219 keywords = {concurrency, C++, postponing requests}, 220 contributer = {pabuhr@plg}, 221 author = {Brian M. Younger}, 222 title = {Adding Concurrency to {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 223 school = {University of Waterloo}, 224 year = 1991, 225 address = {Waterloo, Ontario, Canada, N2L 3G1}, 226 } 227 228 @inproceedings{Buhr92c, 229 keywords = {concurrency}, 230 contributer = {pabuhr@plg}, 231 author = {Peter A. Buhr and Glen Ditchfield}, 232 title = {Adding Concurrency to a Programming Language}, 233 booktitle = {USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Technical Conference Proceedings}, 234 organization= {USENIX Association}, 235 address = {Portland, Oregon, U.S.A.}, 236 month = aug, 237 year = 1992, 238 pages = {207-224}, 239 } 240 241 @article{Buhr89b, 242 keywords = {concurrency, C++}, 243 contributer = {pabuhr@plg}, 244 author = {P. A. Buhr and Glen Ditchfield and C. R. Zarnke}, 245 title = {Adding Concurrency to a Statically Type-Safe Object-Oriented Programming Language}, 246 journal = sigplan, 247 volume = 24, 248 number = 4, 249 month = apr, 250 year = 1989, 251 pages = {18-21}, 252 note = {Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent Programming, Sept. 26--27, 1988, San Diego, California, U.S.A.}, 253 } 254 255 @article{Knuth66, 256 keywords = {N-thread software-solution mutual exclusion}, 257 contributer = {pabuhr@plg}, 258 author = {Donald E. Knuth}, 259 title = {Additional Comments on a Problem in Concurrent Programming Control}, 260 journal = cacm, 261 month = may, 262 year = 1966, 263 volume = 9, 264 number = 5, 265 pages = {321-322}, 266 note = {Letter to the Editor} 267 } 268 269 @article{DeBruijn67, 270 keywords = {N-thread software-solution mutual exclusion}, 271 contributer = {pabuhr@plg}, 272 author = {Nicolaas Govert de Bruijn}, 273 title = {Additional Comments on a Problem in Concurrent Programming Control}, 274 journal = cacm, 275 month = mar, 276 year = 1967, 277 volume = 10, 278 number = 3, 279 pages = {137-138}, 280 note = {letter to the Editor} 281 } 282 283 @phdthesis{Krischer10, 284 author = {Roy Krischer}, 285 title = {Advanced Concepts in Asynchronous Exception Handling}, 286 school = {University of Waterloo}, 287 year = 2010, 288 month = dec, 289 address = {Waterloo, Ontario, Canada, N2L 3G1}, 290 optnote = {\textsf{http://uwspace.uwaterloo.ca/\-bitstream/10012/\-5751\-/1/Krischer\_Roy.pdf}}, 291 note = {\href{http://uwspace.uwaterloo.ca/bitstream/10012/5751/1/Krischer_Roy.pdf}{http://uwspace.uwaterloo.ca/\-bitstream/10012/\-5751\-/1/Krischer\_Roy.pdf}}, 292 } 293 294 @article{Buhr00a, 295 keywords = {exception handling}, 296 contributer = {pabuhr@plg}, 297 author = {Peter A. Buhr and W. Y. Russell Mok}, 298 title = {Advanced Exception Handling Mechanisms}, 299 journal = ieeese, 300 volume = 26, 301 number = 9, 302 month = sep, 303 year = 2000, 304 pages = {820-836}, 305 } 306 307 @book{Richter97, 308 keywords = {Win32, threads}, 309 author = {Jeffrey M. Richter}, 310 title = {Advanced Windows}, 311 publisher = {Microsoft Press}, 312 year = 1997, 313 edition = {third}, 314 } 315 316 @article{Francez77, 317 keywords = {parameter passing, named/positional arguments}, 318 contributer = {pabuhr@plg}, 319 author = {Nissim Francez}, 320 title = {Another Advantage of Key word Notation for Parameter Communication with Subprograms}, 321 journal = cacm, 322 volume = 20, 323 number = 8, 324 month = aug, 325 year = 1977, 326 pages = {604-605}, 327 } 328 329 @article{Algol60, 330 keywords = {Algol60}, 331 contributer = {pabuhr@plg}, 332 author = {J. W. Backus and F. L. Bauer and J. Green and C. Katz and 333 J. McCarthy and P. Naur and A. J. Perlis and H. Rutishauser and K. Samuelson 334 and B. Vauquois and J.H. Wegstein and A. van Wijngaarden and M. Woodger}, 335 title = {Revised Report on the Algorithmic Language Algol 60}, 336 editor = {Peter Nauer}, 337 journal = cacm, 338 volume = 6, 339 number = 1, 340 month = jan, 341 year = 1963, 342 pages = {1-17}, 343 } 344 345 @article{Mellor-Crummey91, 346 keywords = {spin locks, compare-and-swap, barriers}, 347 contributer = {pabuhr@plg}, 348 author = {John M. Mellor-Crummey and Michael L. Scott}, 349 title = {Algorithm for Scalable Synchronization on Shared-Memory Multiprocessors}, 350 journal = tocs, 351 volume = 9, 352 number = 1, 353 month = feb, 354 year = 1991, 355 pages = {21-65}, 356 } 357 358 @article{Cormack81, 359 keywords = {}, 360 contributer = {gjditchfield@plg}, 361 author = {Gordon V. Cormack}, 362 title = {An Algorithm for the Selection of Overloaded Functions in {Ada}}, 363 journal = sigplan, 364 year = 1981, 365 month = feb, volume = 16, number = 2, pages = {48-52}, 366 comment = { 367 A one-pass, top-down algorithm for overload resolution. Input is a 368 parse tree and the desired result type, and output is the number of 369 solutions. For each overloading of the root identifier with a 370 matching parameter list, recursively solve for each parameter for 371 the corresponding argument type---there should be one solution. 372 } 373 } 374 375 @book{Raynal86, 376 keywords = {mutual exclusion, locks}, 377 contributer = {pabuhr@plg}, 378 author = {M. Raynal}, 379 title = {Algorithms for Mutual Exclusion}, 380 publisher = {The MIT Press}, 381 address = {Cambridge, Massachusetts}, 382 series = {Scientific Computation Series}, 383 year = 1986, 384 note = {Translated by D. Beeson}, 385 } 386 387 @incollection{Gidenstam05, 388 keywords = {lock free, dynamic memory allocation}, 389 contributer = {pabuhr@plg}, 390 author = {Anders Gidenstam and Marina Papatriantafilou and Philippas Tsigas}, 391 title = {Allocating Memory in a Lock-free Manner}, 392 editor = {Gerth St{\o}lting Brodal and Stefano Leonardi}, 393 booktitle = {Algorithms -- ESA 2005}, 394 pages = {329-342}, 395 publisher = {Springer}, 396 year = 2005, 397 volume = 3669, 398 series = {Lecture Notes in Computer Science}, 399 } 400 401 @book{Sites92, 402 keywords = {computers, Alpha}, 403 contributer = {pabuhr@plg}, 404 editor = {Richard L. Sites}, 405 title = {Alpha Architecture Reference Manual}, 406 publisher = {Digital Press, One Burlington Woods Drive, Burlington, MA, U. S. A., 01803}, 407 year = 1992, 408 } 409 410 @book{alphard, 411 keywords = {Parametric polymorphism, alphard, iterators, nested types}, 412 contributer = {gjditchfield@plg}, 413 editor = {Mary Shaw}, 414 title = {{ALPHARD}: Form and Content}, 415 publisher = {Springer-Verlag}, 416 year = 1981, 417 comment = {Collection of papers about Alphard.} 418 } 419 420 @article{Kessels77, 421 keywords = {monitors}, 422 contributer = {pabuhr@plg}, 423 author = {Joep L. W. Kessels}, 424 title = {An Alternative to Event Queues for Synchronization in Monitors}, 425 journal = cacm, 426 volume = 20, 427 number = 7, 428 month = jul, 429 year = 1977, 430 pages = {500-503}, 431 annote = { 432 } 433 } 434 435 @article{descr, 436 keywords = {X2, subclasses, inheritance, parameterized classes}, 437 contributer = {gjditchfield@plg}, 438 author = {David Sandberg}, 439 title = {An Alternative to Subclassing}, 440 journal = sigplan, 441 volume = {21}, number = {11}, 442 pages = {424-428}, 443 month = nov, year = 1986, 444 comment = { 445 The Smalltalk class hierarchy has three uses: factoring out code; 446 ``Abstraction superclasses'' such as Collection; rapid construction 447 of new classes by incremental change. 448 449 ``A descriptive class specifies a partial behavior by specifying a 450 set of procedure headings that describe what can be done with 451 instances of classes that belong to the descriptive class.'' An 452 ``instance'' statement declares a class to be an instance of a 453 descriptive class and defines the correspondence between 454 operations. Procedures with descriptive class parameters take any 455 instance as arguments. Descriptive classes can describe relations 456 like ``c is a collection with element type e'', but how such things 457 are used isn't explained. 458 459 For each descriptive class used in a parameter list, an implicit 460 parameter is created that is passed a vector of procedures. 461 } 462 } 463 464 @incollection{Matsuoka93, 465 keywords = {inheritance anomaly}, 466 contributer = {pabuhr@plg}, 467 author = {Satoshi Matsuoka and Akinori Yonezawa}, 468 title = {Analysis of Inheritance Anomaly in Object-Oriented Concurrent Programming Languages}, 469 booktitle = {Research Directions in Concurrent Object-Oriented Programming}, 470 editor = {Gul Agha and Peter Wegner and Akinori Yonezawa}, 471 publisher = {MIT Press}, 472 year = 1993, 473 pages = {107-150}, 474 } 475 476 @article{Sinha00, 477 author = {Saurabh Sinha and Mary Jean Harrold}, 478 title = {Analysis and Testing of Programs with Exception-Handling Constructs}, 479 journal = ieeese, 480 year = 2000, 481 month = sep, 482 volume = 26, 483 number = 9, 484 pages = {849--871}, 485 } 486 487 @inproceedings{Robillard99, 488 author = {Martin P. Robillard and Gail C. Murphy}, 489 title = {Analyzing Exception Flow in {J}ava Programs}, 490 booktitle = {ESEC/FSE-7: Proceedings of the 7th European Software Engineering Conference held jointly 491 with the 7th ACM SIGSOFT International Symposium on Foundations of Software Engineering}, 492 year = 1999, 493 pages = {322--337}, 494 isbn = {3-540-66538-2}, 495 location = {Toulouse, France}, 496 doi = {http://doi.acm.org/10.1145/318773.319251}, 497 publisher = {Springer-Verlag}, 498 address = {London, UK}, 499 } 500 501 @book{C++, 502 keywords = {C++, ANSI}, 503 author = {Margaret A. Ellis and Bjarne Stroustrup}, 504 title = {The Annotated {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Reference Manual}, 505 publisher = {Addison-Wesley}, 506 year = 1990, 507 edition = {first}, 508 } 509 510 @book{APL, 511 keywords = {APL}, 512 contributer = {pabuhr@plg}, 513 author = {K. E. Iverson}, 514 title = {A Programming Language}, 515 publisher = {Wiley, New York}, 516 year = 1962 517 } 518 519 @article{PS-Algol:old, 520 author = {M. Atkinson and P. Bailey and K. Chisholm and P. Cockshott and R. Morrison}, 521 title = {An Approach to Persistent Programming}, 522 journal = {The Computer Journal}, 523 year = 1983, 524 volume = 26, 525 number = 4, 526 pages = {360-365}, 527 } 528 529 @article{Kessels82, 530 keywords = {concurrency, critical section}, 531 contributer = {pabuhr@plg}, 532 author = {Joep L. W. Kessels}, 533 title = {Arbitration Without Common Modifiable Variables}, 534 journal = acta, 535 volume = 17, 536 number = 2, 537 month = jun, 538 year = 1982, 539 pages = {135-141}, 540 } 541 542 @article{Buhr95a, 543 keywords = {concurrency, library approach}, 544 contributer = {pabuhr@plg}, 545 author = {Peter A. Buhr}, 546 title = {Are Safe Concurrency Libraries Possible?}, 547 journal = cacm, 548 month = feb, 549 year = 1995, 550 volume = 38, 551 number = 2, 552 pages = {117-120}, 553 } 554 555 @book{ARMv7, 556 key = {ARM processor}, 557 title = {ARM Architecture Reference Manual}, 558 publisher = {ARM}, 559 volume = {ARM DDI 0406C.b (ID072512)}, 560 year = 2012, 561 } 562 563 @book{Herlihy08, 564 contributer = {pabuhr@plg}, 565 author = {Herlihy, Maurice and Shavit, Nir}, 566 title = {The Art of Multiprocessor Programming}, 567 year = 2008, 568 isbn = {0123705916, 9780123705914}, 569 publisher = {Morgan Kaufmann Publishers Inc.}, 570 address = {San Francisco, CA, USA}, 571 } 572 573 @inproceedings{Chung10, 574 keywords = {transactional memory, lock-free programming, x86 architecture}, 575 contributer = {pabuhr@plg}, 576 author = {Jaewoong Chung and Luke Yen and Stephan Diestelhorst and Martin Pohlack and Michael Hohmuth and David Christie and Dan Grossman}, 577 title = {ASF: AMD64 Extension for Lock-Free Data Structures and Transactional Memory}, 578 booktitle = {Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture}, 579 series = {MICRO '43}, 580 year = 2010, 581 pages = {39--50}, 582 numpages = {12}, 583 publisher = {IEEE Computer Society}, 584 address = {Washington, DC, USA}, 585 } 586 587 @article{Buhr94a, 588 keywords = {assignment, parameter passing, multiple assignment}, 589 contributer = {pabuhr@plg}, 590 author = {P. A. Buhr and David Till and C. R. Zarnke}, 591 title = {Assignment as the Sole Means of Updating Objects}, 592 journal = spe, 593 month = sep, 594 year = 1994, 595 volume = 24, 596 number = 9, 597 pages = {835-870}, 598 } 599 600 @inproceedings{Krischer08, 601 keywords = {exception handling, asynchronous, blocked tasks}, 602 contributer = {pabuhr@plg}, 603 author = {Roy Krischer and Peter A. Buhr}, 604 title = {Asynchronous Exception Propagation in Blocked Tasks}, 605 booktitle = {4th International Workshop on Exception Handling (WEH.08)}, 606 organization= {16th International Symposium on the Foundations of Software Engineering (FSE 16)}, 607 address = {Atlanta, U.S.A}, 608 month = nov, 609 year = 2008, 610 pages = {8-15}, 611 } 612 613 @article{oop:modpascal, 614 keywords = {ModPascal}, 615 contributer = {gjditchfield@plg}, 616 author = {Walter G. Olthoff}, 617 title = {Augmentation of Object-Oriented Programming by Concepts of Abstract Data Type Theory: The ModPascal Experience}, 618 journal = sigplan, 619 volume = 21, 620 number = 11, 621 pages = {429-443}, 622 month = nov, 623 year = 1986 624 } 625 626 @inproceedings{Shen91, 627 keywords = {Ada, polymorphism}, 628 contributer = {pabuhr@plg}, 629 author = {Jun Shen and Gordon V. Cormack}, 630 title = {Automatic instantiation in Ada}, 631 booktitle = {Proceedings of the ACM Tri-Ada Conference}, 632 organization= {ACM}, 633 address = {San Jose, California, U.S.A}, 634 month = oct, 635 year = 1991, 636 pages = {338-346}, 637 } 638 639 @article{Havender68, 640 keywords = {deadlock}, 641 contributer = {pabuhr@plg}, 642 author = {J. W. Havender}, 643 title = {Avoiding Deadlock in Multitasking Systems}, 644 journal = ibmsj, 645 volume = 7, 646 number = 2, 647 year = 1968, 648 pages = {74-84}, 649 } 650 651 % B 652 653 @incollection{beta:old, 654 keywords = {beta, patterns, virtual types}, 655 contributer = {gjditchfield@plg}, 656 author = {Bent Bruun Kristensen and Ole Lehrmann Madsen and Birger M{\o}ller-Pedersen and Kristen Nygaard}, 657 title = {The BETA Programming Language}, 658 booktitle = {Research Directions in Object-Oriented Programming}, 659 publisher = {MIT Press}, 660 series = {Computer Systems Series}, 661 year = 1987, 662 pages = {7-48}, 663 editor = {Bruce Shriver and Peter Wegner} 664 } 665 666 @article{Knudsen87, 667 keyword = {static exception handling mechanism, BETA, sequel}, 668 contributor = {wyrmok@plg}, 669 author = {J{\o}rgen Lindskov Knudsen}, 670 title = {Better Exception Handling in Block Structured Systems}, 671 journal = {IEEE Software}, 672 year = 1987, 673 month = may, 674 volume = 4, 675 number = 3, 676 pages = {40-49}, 677 comments = { 678 Going up the call hierarchy to look for a handler does not fit an 679 otherwise statically scoped language. Also, not knowing which handler 680 to be used when raising an abnormal event is seen as a weakness of the 681 (dynamic) exception handling mechanism. Knudsen believed that raising 682 an exception should specify the handler for the exception -- the 683 handler is chosen when the exception is raised. However, I don't think 684 his scheme can solve the problem, especially with all the callback 685 routines commonly found in OO programming. 686 687 BETA exception handling mechanism uses his work as a foundation. 688 However, I don't see any benefits BETA has over other language that is 689 a direct consequence of Knudsen's work. On the other hand, my knowledge 690 on BETA is very limited. 691 } 692 } 693 694 @book{BCPL, 695 keywords = {BCPL}, 696 contributer = {pabuhr@plg}, 697 author = {M. Richards and C. Whitby-Strevens}, 698 title = {{BCPL} -- The Language and Its Compiler}, 699 publisher = {Cambridge University Press, Cambridge}, 700 year = 1979, 701 } 702 703 @incollection{Madsen87, 704 keywords = {nested classes}, 705 contributer = {pabuhr@watmsg}, 706 author = {Ole Lehrmann Madsen}, 707 title = {Block Structure and Object Oriented Languages}, 708 booktitle = {Research Directions in Object-Oriented Programming}, 709 editor = {Bruce Shriver and Peter Wegner}, 710 publisher = {MIT Press}, 711 series = {Computer Systems Series}, 712 year = 1987, 713 pages = {113-128} 714 } 715 716 @inproceedings{booleanClasses, 717 keywords = {specifications}, 718 contributer = {gjditchfield@plg}, 719 author = {David McAllester and Ramin Zabih}, 720 title = {Boolean Classes}, 721 crossref = "OOPSLA86", 722 pages = {417-423}, 723 abstract = { 724 We extend the notion of class so that any Boolean combination of 725 classes is also a class. Boolean classes allow greater precision 726 and conciseness in naming the class of objects governed a 727 particular method [sic]. A class can be viewed as a predicate 728 which is either true or false of any given object. Unlike 729 predicates however classes have an inheritance hierarchy which is 730 known at compile time. Boolean classes extend the notion of class, 731 making classes more like predicates, while preserving the compile 732 time computable inheritance hierarchy. 733 }, 734 comment = { 735 Classes are predicates; if object {\tt o} is in class {\tt C}, then 736 {\tt C} is true of {\tt o}. Classes are combined with {\tt :AND}, 737 {\tt :OR}, and {\tt :NOT}. Inheritance is treated as implication: 738 {\tt (:implies C E)} means that if class {\tt C} is true of {\tt 739 o}, class expression {\tt E} is true of {\tt o}, so if {\tt E} is a 740 class, it is a superclass of {\tt C}. Some class expressions, i.e. 741 {\tt (:OR c1 c2)}, can't be instantiated. Others, i.e. {\tt (:NOT 742 c)}, can't be given methods or members because almost all classes 743 would inherit them, violating modularity. The rules for spotting 744 these problems are complex. Determining if one class inherits from 745 another needs an exponential algorithm. 746 } 747 } 748 749 @mastersthesis{Krischer02, 750 author = {Roy Krischer }, 751 title = {Bound Exceptions in Object-Oriented Programming Languages}, 752 school = {Universit\"at Mannheim}, 753 address = {Mannheim, Deutschland}, 754 year = 2002, 755 month = oct, 756 type = {Diplomarbeit}, 757 note = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-theses/\-KrischerThesis.ps.gz}}}, 758 } 759 760 @inproceedings{Buhr03, 761 keywords = {exception handling, bound handler}, 762 contributer = {pabuhr@plg}, 763 author = {Peter A. Buhr and Roy Krischer}, 764 title = {Bound Exceptions in Object Programming}, 765 booktitle = {Proceedings of the ECOOP 2003 Workshop on Exception Handling in Object Oriented Systems: 766 Towards Emerging Application Areas and New Programming Paradigms}, 767 organization= {ECOOP}, 768 address = {Darmstadt, Germany}, 769 month = jul, 770 year = 2003, 771 pages = {20-26}, 772 } 773 % note = {http://www.cs.umn.edu/research/technical_reports.php/listing/technical_reports.php?page=report&report_id=03-028} 774 775 @inproceedings{Buhr06b, 776 keywords = {exception handling, bound exceptions}, 777 author = {Peter A. Buhr and Roy Krischer}, 778 title = {Bound Exceptions in Object-Oriented Programming}, 779 editor = {C. Dony and J. L. Knudsen and A. Romanovsky and A. Tripathi}, 780 booktitle = {Advanced Topics in Exception Handling Techniques}, 781 publisher = {Springer-Verlag}, 782 series = {Lecture Notes in Computer Science}, 783 volume = 4119, 784 year = 2006, 785 pages = {1-21} 786 } 787 788 % C 789 790 @book{C, 791 keywords = {C}, 792 contributer = {pabuhr@plg}, 793 author = {Brian W. Kernighan and Dennis M. Ritchie}, 794 title = {The {C} Programming Language}, 795 publisher = {Prentice Hall}, 796 year = 1988, 797 edition = {second}, 798 series = {Prentice Hall Software Series}, 799 comment = { 800 based on draft-proposed ANSI C 801 } 802 } 803 804 @book{C:old, 805 keywords = {C}, 806 contributer = {pabuhr@plg}, 807 author = {Brian W. Kernighan and Dennis M. Ritchie}, 808 title = {The {C} Programming Language}, 809 publisher = {Prentice Hall}, 810 year = 1978, 811 edition = {first}, 812 } 813 814 @manual{ANSI89:C, 815 keywords = {ANSI C 89}, 816 contributer = {gjditchfield@plg}, 817 title = {American National Standard for Information Systems -- Programming Language -- {C}}, 818 organization= {American National Standards Institute}, 819 address = {1430 Broadway, New York, New York 10018}, 820 month = dec, 821 year = 1989, 822 note = {X3.159-1989} 823 } 824 825 @manual{C11, 826 keywords = {ISO/IEC C 11}, 827 contributer = {pabuhr@plg}, 828 key = {C11}, 829 title = {American National Standard Information technology -- Programming Languages -- {C}}, 830 organization= {International Standard ISO/IEC 9899-2011[2012]}, 831 publisher = {International Standard Organization}, 832 address = {http://www.iso.org}, 833 year = 2012, 834 } 835 836 @mastersthesis{Esteves04, 837 keywords = {Cforall, parametric polymorphism, overloading}, 838 contributer = {pabuhr@plg}, 839 author = {Rodolfo Gabriel Esteves}, 840 title = {C$\forall$, a Study in Evolutionary Design in Programming Languages}, 841 school = {School of Computer Science, University of Waterloo}, 842 year = 2004, 843 address = {Waterloo, Ontario, Canada, N2L 3G1}, 844 note = {\href{http://plg.uwaterloo.ca/theses/EstevesThesis.pdf}{http://\-plg.uwaterloo.ca/\-theses/\-EstevesThesis.pdf}}, 845 } 846 847 @inproceedings{c++scheme, 848 keywords = {}, 849 contributer = {gjditchfield@plg}, 850 author = {Vincent F. Russo and Simon M. Kaplan}, 851 title = {A {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Interpreter for {S}cheme}, 852 booktitle = {Usenix {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Conference}, 853 year = 1988, 854 pages = {95-108}, 855 summary = { 856 The SIOD interpreter for a Scheme subset, written in C, has a 857 tagged union representing data objects, and read(), eval(), and 858 print() functions that are basically large switch statements that 859 switch based on the tag. The authors rewrote it to use a class 860 with virtual read(), eval(), and print() members, without changing 861 any algorithms. The result was more modular, more easily 862 extensible, more reliable, and slightly faster. 863 }, 864 comment = { 865 The evidence given is thin. 866 } 867 } 868 869 @article{doskernel, 870 keywords = {light weight processes}, 871 contributer = {gjditchfield@plg}, 872 author = {Tom Green}, 873 title = {A {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Multitasking Kernel}, 874 journal = {Dr. Dobb's Journal of Software Tools}, 875 year = 1989, 876 month = feb, volume = 14, number = 2, pages = {45-51}, 877 comment = { 878 A light-weight multitasking kernel for MS-DOS. A task\_control 879 object holds task objects, which may block themselves on signal 880 objects. Task switching is normally preemptive, but tasks can turn 881 off preemption before calling non-reentrant routines. Source code 882 is given. 883 } 884 } 885 886 @inproceedings{Doeppner87, 887 keywords = {concurrency}, 888 contributer = {pabuhr@plg}, 889 author = {Thomas W. Doeppner and Alan J. Gebele}, 890 title = {{C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} on a Parallel Machine}, 891 booktitle = {Proceedings and Additional Papers {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Workshop}, 892 organization= {USENIX Association}, 893 address = {Santa Fe, New Mexico, U.S.A}, 894 month = nov, 895 year = 1987, 896 pages = {94-107}, 897 } 898 899 @book{Lippman91, 900 keywords = {C++}, 901 contributer = {pabuhr@plg}, 902 author = {Stanley B. Lippman}, 903 title = {{C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Primer}, 904 publisher = {Addison-Wesley}, 905 year = 1991, 906 edition = {second}, 907 note = {QA76.73.C15L57}, 908 } 909 910 @book{c++:v1, 911 keywords = {C++}, 912 contributer = {gjditchfield@plg}, 913 author = {Bjarne Stroustrup}, 914 title = {The {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Programming Language}, 915 publisher = {Addison-Wesley}, 916 year = 1986, 917 edition = {first}, 918 series = {Addison-Wesley Series in Computer Science} 919 } 920 921 @book{c++:v2, 922 keywords = {C++}, 923 contributer = {pabuhr@plg}, 924 author = {Bjarne Stroustrup}, 925 title = {The {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Programming Language}, 926 publisher = {Addison-Wesley}, 927 year = 1991, 928 edition = {second}, 929 } 930 931 @book{c++:v3, 932 keywords = {C++}, 933 contributer = {pabuhr@plg}, 934 author = {Bjarne Stroustrup}, 935 title = {The {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Programming Language}, 936 publisher = {Addison-Wesley}, 937 year = 1997, 938 edition = {third}, 939 } 940 941 @manual{Csharp, 942 keywords = {C#}, 943 contributer = {pabuhr@plg}, 944 title = {C\# Language Specification, Standard ECMA-334}, 945 organization= {ECMA International Standardizing Information and Communication Systems}, 946 month = jun, 947 year = 2006, 948 edition = {4th}, 949 } 950 951 @article{Buhr85, 952 keywords = {goto, multi-exit loop}, 953 contributer = {pabuhr@plg}, 954 author = {P. A. Buhr}, 955 title = {A Case for Teaching Multi-exit Loops to Beginning Programmers}, 956 journal = sigplan, 957 volume = 20, 958 number = 11, 959 month = nov, 960 year = 1985, 961 pages = {14-22} 962 } 963 964 @techreport{cforall-ug, 965 keywords = {cforall, user guide}, 966 contributer = {pabuhr@plg}, 967 author = {Peter A. Buhr and Glen Ditchfield and David Till and Charles R. Zarnke}, 968 title = {\mbox{\mdseries\sffamily C{$\mathbf{\forall}$}}\ Users Guide, Version 0.1}, 969 institution = {Department of Computer Science, University of Waterloo}, 970 address = {Waterloo, Ontario, Canada, N2L 3G1}, 971 month = oct, 972 year = 2001, 973 note = {\href{http://plg.uwaterloo.ca/~cforall/cfa.ps}{http://\-plg.uwaterloo.ca/\-\char`\~cforall/\-cfa.ps}}, 974 } 975 976 @manual{cforall, 977 keywords = {polymorphism}, 978 contributer = {gjditchfield@plg}, 979 author = {Glen Ditchfield}, 980 title = {Cforall Reference Manual and Rationale}, 981 edition = {Revision 1.82}, 982 month = jan, 983 year = 1998, 984 note = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-Cforall/\-refrat.ps.gz}}}, 985 } 986 987 @book{Yourdon79, 988 keywords = {software engineering}, 989 contributer = {pabuhr@plg}, 990 editor = {Edward Nash Yourdon}, 991 title = {Classics in Software Engineering}, 992 publisher = {Yourdon Press}, 993 year = 1979, 994 } 995 996 @inproceedings{Crnogorac98, 997 keywords = {inheritance anomaly}, 998 contributer = {pabuhr@plg}, 999 author = {Lobel Crnogorac and Anand S. Rao and Kotagiri Ramamohanarao}, 1000 title = {Classifying Inheritance Mechanisms in Concurrent Object-Oriented Programming}, 1001 editor = {Eric Jul}, 1002 booktitle = {{ECOOP}~'98---Object-Oriented Programming}, 1003 series = {Lecture Notes in Computer Science}, 1004 publisher = {Springer}, 1005 volume = 1445, 1006 year = 1998, 1007 pages = {571-601}, 1008 ISBN = {3-540-64737-6}, 1009 ISSN = {0302-9743}, 1010 abstract = { 1011 Inheritance is one of the key concepts in object-oriented rogramming. However, the 1012 usefulness of inheritance in concurrent object-oriented programming is greatly 1013 reduced by the problem of inheritance anomaly. Inheritance anomaly is manifested 1014 by undesirable re-definitions of inherited code. The problem is aggravated by the 1015 lack of a formal analysis, with a multitude of differing proposals and conflicting 1016 opinions causing the current state of research, and further directions, to be 1017 unclear. In this paper we present a formal analysis of inheritance anomaly in 1018 concurrent object-oriented programming. Starting from a formal definition of the 1019 problem we develop a taxonomy of the anomaly, and use it to classify the various 1020 proposals. As a result, the major ideas, trends and limitations of the various 1021 proposals are clearly exposed. Formal analysis of the anomaly and a thorough 1022 exposition of its causes and implications are the pre-requisites for a successful 1023 integration of inheritance and concurrency. 1024 }, 1025 } 1026 1027 @book{CLU, 1028 keywords = {CLU}, 1029 contributer = {gjditchfield@plg}, 1030 author = {Barbara Liskov and Russell Atkinson and Toby Bloom and Eliot 1031 Moss and J. Craig Schaffert and Robert Scheifler and Alan Snyder}, 1032 title = {CLU Reference Manual}, 1033 publisher = {Springer-Verlag}, 1034 year = 1981, 1035 volume = 114, 1036 series = {Lecture Notes in Computer Science} 1037 } 1038 1039 @manual{Cobol14, 1040 keywords = {ISO/IEC Cobol 14}, 1041 contributer = {pabuhr@plg}, 1042 key = {Cobol14}, 1043 title = {Programming Languages -- {Cobol}}, 1044 edition = {second}, 1045 organization= {International Standard ISO/IEC 1989:2014}, 1046 publisher = {International Standard Organization}, 1047 address = {http://www.iso.org}, 1048 year = 2014, 1049 } 1050 1051 @article{coagulation, 1052 keywords = {register allocation, instruction selection, jello}, 1053 contributer = {gjditchfield@plg}, 1054 author = {Michael Karr}, 1055 title = {Code Generation by Coagulation}, 1056 journal = sigplan, 1057 year = 1984, 1058 month = jun, volume = 19, number = 6, pages = {1-12}, 1059 note = {Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction}, 1060 abstract = { 1061 This paper describes a new approach to code-generation. The 1062 central tenet is that there must be a more intimate coupling 1063 between register allocation and instruction selection than exists 1064 in present-day technology. This is achieved by generating code in 1065 very small regions and gradually coalescing the part of the program 1066 that is ``compiled''. 1067 }, 1068 comment = { 1069 Imagine the program, including the subroutines, spread out over a 1070 table, with the compiler dropping Jello on the parts as they are 1071 compiled. At first little drops appear in seemingly random places. 1072 These get bigger and combine with other drops to form growing 1073 globs. When two globs meet, ripples will go out through each as 1074 they adjust to each other's presence, although the parts of the 1075 globs that formed first are less affected by the ripples. When 1076 compilation is complete, there is one congealed mass. 1077 } 1078 } 1079 1080 @article{Soloway83, 1081 keywords = {goto, structure programming}, 1082 contributer = {pabuhr@plg}, 1083 author = {E. Soloway and J. Bonar and K. Ehrlich}, 1084 title = {Cognitive Strategies and Looping Constructs: An Empirical Study}, 1085 journal = cacm, 1086 month = nov, 1087 year = 1983, 1088 volume = 26, 1089 number = 11, 1090 pages = {853-860}, 1091 } 1092 1093 @book{sml:commentary, 1094 author = {Robin Milner and Mads Tofte}, 1095 title = {Commentary on Standard {ML}}, 1096 publisher = {MIT Press}, 1097 address = {Cambridge, Massachusetts, U.S.A.}, 1098 year = 1991 1099 } 1100 1101 @article{Hyman66, 1102 keywords = {mutual exclusion, software solution, incorrect}, 1103 contributer = {pabuhr@plg}, 1104 author = {Harris Hyman}, 1105 title = {Comments on a Problem in Concurrent Programming Control}, 1106 journal = cacm, 1107 month = jan, 1108 year = 1966, 1109 volume = 9, 1110 number = 1, 1111 pages = {45}, 1112 note = {Letter to the Editor} 1113 } 1114 1115 @inproceedings{clos, 1116 keywords = {}, 1117 contributer = {gjditchfield@plg}, 1118 author = {Linda G. DeMichiel and Richard P. Gabriel}, 1119 title = {The Common Lisp Object System: An Overview}, 1120 booktitle = {ECOOP '87. European Conference on Object-Oriented Programming}, 1121 year = 1987, 1122 pages = {151-170}, 1123 publisher = {Springer-Verlag} 1124 } 1125 1126 @book{CommonLisp, 1127 keywords = {common lisp}, 1128 contributer = {pabuhr@plg}, 1129 author = {G. Steele}, 1130 title = {COMMON LISP: The Language}, 1131 publisher = {Digital Press}, 1132 year = 1984 1133 } 1134 1135 @article{CommonLoops, 1136 author = {D. Bobrow and K. Kahn and G. Kiczales and L. Masinter and M. Stefik and F. Zdybel}, 1137 title = {CommonLoops: Merging Common Lisp and Object-Oriented Programming}, 1138 address = {Portland, Oregon, U.S.A.}, 1139 journal = {Proc. ACM Conf. on Object-Oriented Systems, Languages and Applications}, 1140 year = 1986, 1141 month = sep, 1142 pages = {17-29}, 1143 } 1144 1145 @article{co-overview, 1146 keywords = {CommonObjects, implementation, encapsulation}, 1147 contributer = {gjditchfield@plg}, 1148 author = {Alan Snyder}, 1149 title = {CommonObjects: An Overview}, 1150 journal = sigplan, 1151 year = 1986, 1152 month = oct, volume = 21, number = 10, pages = {19-28}, 1153 note = {Object Oriented Programming Workshop} 1154 } 1155 1156 @article{CSP, 1157 keywords = {CSP, concurrency}, 1158 contributer = {pabuhr@plg}, 1159 author = {C. A. R. Hoare}, 1160 title = {Communicating Sequential Processes}, 1161 journal = cacm, 1162 month = aug, 1163 year = 1978, 1164 volume = 21, 1165 number = 8, 1166 pages = {666-677} 1167 } 1168 1169 @book{Hoare85, 1170 author = {C. A. R. Hoare}, 1171 title = {Communicating Sequential Processes}, 1172 year = 1985, 1173 isbn = {0-13-153271-5}, 1174 publisher = {Prentice-Hall, Inc.}, 1175 address = {Upper Saddle River, NJ, USA}, 1176 note = {\href{http://www.usingcsp.com/cspbook.pdf}{http://\-www.usingcsp.com/\-cspbook.pdf}}, 1177 } 1178 1179 @article{Hansen72a, 1180 keywords = {monitors, automatic signal}, 1181 contributer = {pabuhr@plg}, 1182 author = {Per {Brinch Hansen}}, 1183 title = {A Comparison of Two Synchronizing Concepts}, 1184 journal = acta, 1185 volume = 1, 1186 year = 1972, 1187 pages = {190-199}, 1188 } 1189 1190 @book{Aho06, 1191 author = {Alfred V. Aho and Monica S. Lam and Ravi Sethi and Jeffrey D. Ullman}, 1192 title = {Compilers: Principles, Techniques, and Tools}, 1193 edition = {second}, 1194 year = {2006}, 1195 publisher = {Addison-Wesley Longman Publishing Co., Inc.}, 1196 address = {Boston, MA, USA}, 1197 } 1198 1199 @article{Bacon94, 1200 keywords = {parallelizing compiler}, 1201 contributer = {pabuhr@plg}, 1202 author = {David F. Bacon and Susan L. Graham and Oliver J. Sharp}, 1203 title = {Compiler Transformations for High-Performance Computing}, 1204 journal = acmcs, 1205 volume = 26, 1206 number = 4, 1207 month = dec, 1208 year = 1994, 1209 pages = {345-420}, 1210 } 1211 1212 @inproceedings{Berger01, 1213 author = {Emery D. Berger and Benjamin G. Zorn and Kathryn S. McKinley}, 1214 title = {Composing High-Performance Memory Allocators}, 1215 booktitle = {{SIGPLAN} Conference on Programming Language Design and Implementation}, 1216 pages = {114-124}, 1217 year = 2001, 1218 url = {http://citeseer.ist.psu.edu/berger01composing.html} 1219 } 1220 1221 @article{Andrews83, 1222 keywords = {general concurrency}, 1223 contributer = {pabuhr@plg}, 1224 author = {Gregory R. Andrews and Fred B. Schneider}, 1225 title = {Concepts and Notations for Concurrent Programming}, 1226 journal = acmcs, 1227 volume = 15, 1228 number = 1, 1229 month = mar, 1230 year = 1983, 1231 pages = {3-43}, 1232 } 1233 1234 @mastersthesis{Mok97, 1235 author = {Wing Yeung Russell Mok}, 1236 title = {Concurrent Abnormal Event Handling Mechanisms}, 1237 school = {University of Waterloo}, 1238 year = 1997, 1239 month = sep, 1240 address = {Waterloo, Ontario, Canada, N2L 3G1}, 1241 note = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-theses/\-MokThesis.ps.gz}}}, 1242 } 1243 1244 @article{Gehani86, 1245 keywords = {Concurrent programming, C, Distributed systems, rendezvous}, 1246 contributer = {dgharriss@plg}, 1247 author = {N. H. Gehani and W. D. Roome}, 1248 title = {{Concurrent C}}, 1249 journal = spe, 1250 volume = 16, 1251 number = 9, 1252 month = sep, 1253 year = 1986, 1254 pages = {821-844}, 1255 abstract = { 1256 Our objective is to enhance C so that it can be used to write 1257 concurrent programs that can run efficiently on both single computers 1258 and multicomputers. Our concurrent programming extensions to C are 1259 based on the {\it rendezvous\/} concept. These extensions include 1260 mechanisms for the declaration and creation of processes, for process 1261 synchronization and interaction, for process termination and abortion. 1262 We give a rationale for our decisions and compare Concurrent C 1263 extensions with the concurrent programming facilities in Ada. 1264 Concurrent C has been implemented on the UNIX system running on a 1265 single processor. A distributed version of Concurrent C is being 1266 implemented. 1267 }, 1268 comment = { 1269 Select with guarded and screened accepts. Typed processes. 1270 Process-valued expressions and process variables. Processes have 1271 execution priority: Create {\em process-type-name}(args) [with 1272 priority(p)], 1273 and the priority can be changed on the fly. Complicated guard/ 1274 screen structure on accept: accept {\em transaction}(param names) 1275 [suchthat (exp)] [by (exp)] [compoundstatement]. Accepts cannot 1276 appear in functions! Can specify timeouts on transaction calls. 1277 Code examples: buffer process, dining philosophers, lock manager. 1278 Section on diffs between Concurrent C and Ada. 1279 } 1280 } 1281 1282 @article{ConcurrentC++, 1283 keywords = {concurrency, C++}, 1284 contributer = {pabuhr@plg}, 1285 author = {N. H. Gehani and W. D. Roome}, 1286 title = {Concurrent {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}: Concurrent Programming with Class(es)}, 1287 journal = spe, 1288 month = dec, 1289 year = 1988, 1290 volume = 18, 1291 number = 12, 1292 pages = {1157-1177} 1293 } 1294 1295 @article{Courtois71, 1296 keywords = {reader and writer, p and v}, 1297 contributer = {pabuhr@plg}, 1298 author = {P. J. Courtois and F. Heymans and D. L. Parnas}, 1299 title = {Concurrent Control with Readers and Writers}, 1300 journal = cacm, 1301 volume = 14, 1302 number = 10, 1303 month = oct, 1304 year = 1971, 1305 pages = {667-668}, 1306 annote = { 1307 Many errors in the two solutions. 1308 } 1309 } 1310 1311 @incollection{Reppy93, 1312 keywords = {ML, concurrency, continuation passing}, 1313 contributer = {pabuhr@plg}, 1314 author = {John H. Reppy}, 1315 title = {Concurrent {ML}: Design, Application and Semantics}, 1316 booktitle = {Functional Programming, Concurrency, Simulation and Automated Reasoning}, 1317 editor = {P. E. Lauer}, 1318 pages = {165-198}, 1319 publisher = {Springer-Verlag}, 1320 address = {Berlin, DE}, 1321 year = 1993, 1322 ISBN = {3-540-56883-2}, 1323 abstract = { 1324 Concurrent ML (CML) is a high-level language for concurrent 1325 programming. It is an extension of Standard ML (SML) and is implemented 1326 on top of Standard ML of New Jersey (SML/NJ). CML is a practical 1327 language and is being used to build real systems. It demonstrates that 1328 one need not sacrifice high-level notation in order to have good 1329 performance. CML is also a well-defined language. In the tradition of 1330 SML, it has a formal semantics and its type-soundness has been 1331 proven.}, 1332 note = { 1333 Proceedings of International Lecture Series 1991-92, McMaster 1334 UniversityLecture Notes in Computer Science 693.}, 1335 } 1336 1337 @article{BLASE-2, 1338 keywords = {concurrency, BLASE-2}, 1339 contributer = {pabuhr@plg}, 1340 author = {Piyush Mehrotra and John Van Rosendale}, 1341 title = {Concurrent Object Access in BLASE~2}, 1342 journal = sigplan, 1343 volume = 24, 1344 number = 4, 1345 month = apr, 1346 year = 1989, 1347 pages = {40-42}, 1348 note = {Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent Programming, 1349 Sept. 26--27, 1988, San Diego, California, U.S.A}, 1350 } 1351 1352 @techreport{Kafura88, 1353 keywords = {objects, concurrency}, 1354 contributer = {pabuhr@plg}, 1355 author = {Dennis Kafura}, 1356 title = {Concurrent Object-Oriented Real-Time Systems Research}, 1357 institution = {Department of Computer Science, Virginia Polytechnic}, 1358 number = {TR 88-47}, 1359 year = 1988 1360 } 1361 1362 @article{Buhr92a, 1363 keywords = {C++, concurrency, light-weight process, shared memory}, 1364 contributer = {pabuhr@plg}, 1365 author = {P. A. Buhr and Glen Ditchfield and R. A. Stroobosscher and B. M. Younger and C. R. Zarnke}, 1366 title = {$\mu${C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}: Concurrency in the Object-Oriented Language {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 1367 journal = spe, 1368 volume = 22, 1369 number = 2, 1370 month = feb, 1371 year = 1992, 1372 pages = {137-172}, 1373 } 1374 1375 @techreport{uC++, 1376 keywords = {C++, concurrency, light-weight process, shared memory}, 1377 contributer = {pabuhr@plg}, 1378 author = {Peter A. Buhr}, 1379 title = {$\mu${C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Annotated Reference Manual, Version 6.1.0}, 1380 institution = {School of Computer Science, University of Waterloo}, 1381 address = {Waterloo, Ontario, Canada, N2L 3G1}, 1382 month = jul, 1383 year = 2015, 1384 note = {\href{http://plg.uwaterloo.ca/~usystem/pub/uSystem/u++-6.1.0.sh}{\textsf{http://plg.uwaterloo.ca/\-$\sim$usystem/\-pub/\-uSystem/\-u++-6.1.0.sh}}}, 1385 } 1386 1387 @book{Burns93, 1388 keywords = {concurrency, Pascal}, 1389 contributer = {pabuhr@plg}, 1390 author = {Alan Burns and Geoff Davies}, 1391 title = {Concurrent Programming}, 1392 publisher = {Addison-Wesley}, 1393 year = 1993, 1394 } 1395 1396 @article{Hansen73a, 1397 keywords = {monitors}, 1398 contributer = {pabuhr@plg}, 1399 author = {Per {Brinch Hansen}}, 1400 title = {Concurrent Programming Concepts}, 1401 journal = spe, 1402 month = dec, 1403 year = 1973, 1404 volume = 5, 1405 number = 4, 1406 pages = {223-245}, 1407 } 1408 1409 @book{Lea97, 1410 keywords = {concurrency, Java}, 1411 contributer = {pabuhr@plg}, 1412 author = {Doug Lea}, 1413 title = {Concurrent Programming in {J}ava: Design Principles and Patterns}, 1414 publisher = {Addison-Wesley}, 1415 year = 1997, 1416 edition = {first}, 1417 } 1418 1419 @book{Hartley98, 1420 keywords = {concurrency, Java}, 1421 contributer = {pabuhr@plg}, 1422 author = {Stephen J. Hartley}, 1423 title = {Concurrent Programming: The {J}ava Programming Language}, 1424 publisher = {Oxford University Press}, 1425 year = 1998, 1426 edition = {first}, 1427 } 1428 1429 @book{Lea00, 1430 keywords = {concurrency, Java}, 1431 contributer = {pabuhr@plg}, 1432 author = {Doug Lea}, 1433 title = {Concurrent Programming in {J}ava: Design Principles and Patterns}, 1434 publisher = {Addison-Wesley}, 1435 year = 2000, 1436 edition = {second}, 1437 } 1438 1439 @book{ConcurrentC, 1440 keywords = {concurrency, C}, 1441 contributer = {pabuhr@plg}, 1442 author = {N. H. Gehani and W. D. Roome}, 1443 title = {The {Concurrent C} Programming Language}, 1444 publisher = {Silicon Press, NJ}, 1445 year = 1989, 1446 } 1447 1448 @book{Andrews91:book, 1449 keywords = {concurrency}, 1450 contributer = {pabuhr@plg}, 1451 author = {Gregory R. Andrews}, 1452 title = {Concurrent Programming: Principles and Practice}, 1453 publisher = {Benjamin/Cummings Publishing Company, Inc., Redwood City, California}, 1454 year = 1991, 1455 } 1456 1457 @article{Buhr05a, 1458 keywords = {concurrency, myths}, 1459 contributer = {pabuhr@plg}, 1460 author = {Peter A. Buhr and Ashif S. Harji}, 1461 title = {Concurrent Urban Legends}, 1462 journal = {Concurrency and Computation: Practice and Experience}, 1463 month = aug, 1464 year = 2005, 1465 volume = 17, 1466 number = 9, 1467 pages = {1133-1172}, 1468 } 1469 1470 @techreport{Buhr90, 1471 keywords = {objects, concurrency}, 1472 contributer = {gjditchfield@plg}, 1473 author = {P. A. Buhr and G. J. Ditchfield and B. M. Younger and C. R. Zarnke}, 1474 title = {Concurrency in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 1475 institution = {Department of Computer Science, University of Waterloo}, 1476 address = {Waterloo, Ontario, Canada, N2L 3G1}, 1477 number = {CS-90-18}, 1478 month = may, 1479 year = 1990 1480 } 1481 1482 @book{Burns98, 1483 keywords = {concurrency, Ada}, 1484 author = {Alan Burns and Andy Wellings}, 1485 title = {Concurrency in {Ada}}, 1486 publisher = {Cambridge University Press}, 1487 year = 1998, 1488 edition = {second}, 1489 } 1490 1491 @book{Bernstein93, 1492 keywords = {concurrency}, 1493 author = {Arthur J. Bernstein and Philip M. Lewis}, 1494 title = {Concurrency in Programming and Database Systems}, 1495 publisher = {Jones and Bartlett}, 1496 year = 1993, 1497 } 1498 1499 @inproceedings{Pitman01, 1500 keywords = {LISP, exception handling}, 1501 contributer = {pabuhr@plg}, 1502 author = {Kent M. Pitman}, 1503 title = {Condition Handling in the Lisp Language Family}, 1504 booktitle = {Exception Handling}, 1505 publisher = {Springer-Verlag}, 1506 volume = 2022, 1507 series = {LNCS}, 1508 year = 2001, 1509 pages = {39-59} 1510 } 1511 1512 @inbook{enhancement, 1513 keywords = {bounded polymorphism, Comandos}, 1514 contributer = {gjditchfield@plg}, 1515 author = {Chris Horn}, 1516 title = {Conformace, Genericity, Inheritance and Enhancement}, 1517 pages = {223-233}, 1518 publisher = {Springer-Verlag}, 1519 year = 1987, 1520 volume = 276, 1521 series = "Lecture Notes in Computer Science", 1522 note = "ECOOP '87 European Conference on Object-Oriented Programming", 1523 summary = { 1524 Considers effect of conformance on Meyer's conclusions in 1525 \cite{polymorphism}. 1526 1527 Implementing a swap function as a member of a type {\cd Swappable} 1528 with {\cd in out Top} parameters doesn't work, because conformance 1529 requires arguments to be of type {\cd Top}. 1530 1531 An enhancive type has a type parameter, bounded by some type, and 1532 defines members. Types conforming to the bound can be passed as 1533 arguments to create types with the extra members. The signature of 1534 the enhanced type is based on the signature of the argument, not the 1535 bound, as if enhancive types were macros. Hence enhanced types do not 1536 necessarily conform to each other. Types conforming to the bound 1537 conform to enhanced types, which allows new functions to be applied 1538 to old types. 1539 1540 Enhancive types are not generic types. If the argument is omitted, 1541 the bound is used as a default. Assignment of enhanced types to 1542 default-enhanced types is allowed (enhanced types conform to the 1543 default-enhanced type). This is (probably) statically type-safe, 1544 because arguments must conform to the bound, and the new members 1545 only use operations defined for the bound. 1546 1547 With facilities for member renaming and deletion, enhancive types 1548 provide the equivalent of constrained generic types. 1549 } 1550 } 1551 1552 @phdthesis{Ditchfield92, 1553 keywords = {C, parametric polymorphism, overloading}, 1554 contributer = {pabuhr@plg}, 1555 author = {Glen Jeffrey Ditchfield}, 1556 title = {Contextual Polymorphism}, 1557 school = {Department of Computer Science, University of Waterloo}, 1558 year = 1992, 1559 address = {Waterloo, Ontario, Canada, N2L 3G1}, 1560 note = {\href{http://plg.uwaterloo.ca/theses/DitchfieldThesis.pdf}{http://\-plg.uwaterloo.ca/\-theses/\-DitchfieldThesis.pdf}} 1561 } 1562 1563 @inproceedings{frameworks:HHG90, 1564 keywords = {formal}, 1565 contributer = {pabuhr@plg}, 1566 author = {Richard Helm and Ian M. Holland and Dipayan Gangopadhyay}, 1567 title = {Contracts: Specifying Behavioural Compositions in Cbject-Oriented Systems}, 1568 booktitle = {Proceedings of ACM Symposium on Object-Oriented Programming: Systems, Languages and Applications}, 1569 year = 1990, 1570 pages = {169-180}, 1571 } 1572 1573 @article{Wand80, 1574 keywords = {concurrency, continuation}, 1575 contributer = {pabuhr@plg}, 1576 author = {Mitchell Wand}, 1577 title = {Continuation-Based Multiprocessing}, 1578 publisher = {The Lisp Conference}, 1579 journal = {Conference Record of the 1980 Lisp Conference}, 1580 pages = {19-28}, 1581 year = 1980, 1582 } 1583 1584 @article{Hieb90, 1585 keywords = {continuations, concurrency}, 1586 contributer = {pabuhr@plg}, 1587 author = {Robert Hieb and R. Kent Dybvig}, 1588 title = {Continuations and Concurrency}, 1589 journal = sigplan, 1590 volume = 25, 1591 number = 3, 1592 month = mar, 1593 year = 1990, 1594 pages = {128-136}, 1595 note = {Proceedings of the Second ACM SIGPLAN Symposium on Principles \& Practise of Parallel Programming, 1596 March. 14--16, 1990, Seattle, Washington, U.S.A}, 1597 } 1598 1599 @inproceedings{Haynes84, 1600 keywords = {continuations, coroutines, Scheme}, 1601 contributer = {pabuhr@plg}, 1602 author = {Christopher T. Haynes and Daniel P. Friedman and Mitchell Wand}, 1603 title = {Continuations and Coroutines}, 1604 booktitle = {Conference Record of the 1984 {ACM} Symposium on Lisp and Functional Programming}, 1605 organization= {Association for Computing Machinery}, 1606 month = aug, 1607 year = 1984, 1608 pages = {293-298}, 1609 abstract = { 1610 The power of first class continuations is demonstrated by implementing 1611 a variety of coroutine mechanisms using only continuations and 1612 functional abstraction. The importance of general abstraction 1613 mechanisms such as continuations is discussed.}, 1614 } 1615 1616 @inproceedings{Zahn74, 1617 keywords = {goto, structured programming}, 1618 contributer = {pabuhr@plg}, 1619 author = {C. T. Zahn}, 1620 title = {Control Statement for Natural Top-down Structured Programming}, 1621 booktitle = {Symposium on Programming Languages}, 1622 address = {Paris, France}, 1623 year = 1974, 1624 } 1625 1626 @techreport{Dijkstra65, 1627 keywords = {concurrency, Dekker's algorithm, semaphores}, 1628 contributer = {pabuhr@plg}, 1629 author = {Edsger W. Dijkstra}, 1630 title = {Cooperating Sequential Processes}, 1631 institution = {Technological University}, 1632 address = {Eindhoven, Netherlands}, 1633 year = 1965, 1634 note = {Reprinted in \cite{Genuys68} pp. 43--112.} 1635 } 1636 1637 @book{Marlin80, 1638 keywords = {coroutines}, 1639 contributer = {pabuhr@plg}, 1640 author = {Christopher D. Marlin}, 1641 title = {Coroutines: A Programming Methodology, a Language Design and an Implementation}, 1642 publisher = {Springer-Verlag}, 1643 year = 1980, 1644 volume = 95, 1645 series = {Lecture Notes in Computer Science, Ed. by G. Goos and J. Hartmanis} 1646 } 1647 1648 @article{Wang71, 1649 keywords = {coroutines}, 1650 contributer = {pabuhr@plg}, 1651 author = {Arne Wang and Ole-Johan Dahl}, 1652 title = {Coroutine Sequencing in a Block Structured Environment}, 1653 journal = "BIT", 1654 volume = 11, 1655 month = nov, 1656 year = 1971, 1657 pages = {425-449}, 1658 } 1659 1660 @article{Castagna95, 1661 keywords = {type-systems, covariance, contravariance}, 1662 contributer = {pabuhr@plg}, 1663 author = {Giuseppe Castagna}, 1664 title = {Covariance and Contravariance : Conflict without a Cause}, 1665 journal = toplas, 1666 volume = 17, 1667 number = 3, 1668 month = may, 1669 year = 1995, 1670 pages = {341-447}, 1671 } 1672 1673 @book{Fischer88, 1674 keywords = {compiler construction}, 1675 author = {Charles N. Fischer and Richard J. {LeBlanc, Jr.}}, 1676 title = {Crafting a Compiler}, 1677 publisher = {Benjamin Cummings}, 1678 year = 1991, 1679 } 1680 1681 @inproceedings{Jim02, 1682 keywords = {C dialect, parametric polymorphic, safe memory allocation}, 1683 contributer = {pabuhr@plg}, 1684 author = {Trevor Jim and Greg Morrisett and Dan Grossman and Michael Hicks and James Cheney and and Yanling Wang}, 1685 title = {{C}yclone: A Safe Dialect of {C}}, 1686 booktitle = {USENIX Annual Technical Conference}, 1687 organization= {USENIX Association}, 1688 address = {Monterey, California, U.S.A.}, 1689 month = jun, 1690 year = 2002, 1691 pages = {275-288}, 1692 } 1693 1694 % D 1695 1696 @manual{D, 1697 keywords = {D programming language}, 1698 contributer = {pabuhr@plg}, 1699 title = {{D} Programming Language}, 1700 author = {Walter Bright and Andrei Alexandrescu}, 1701 organization= {Digital Mars}, 1702 year = 2016, 1703 note = {\href{http://dlang.org/spec/spec.html}{http://\-dlang.org/\-spec/\-spec.html}}, 1704 } 1705 1706 @techreport{Cui90, 1707 keywords = {exception handling}, 1708 contributer = {pabuhr@plg}, 1709 author = {Qian Cui}, 1710 title = {Data-Oriented Exception Handling}, 1711 institution = {Department of Computer Science, University of Maryland}, 1712 address = {College Park, Maryland, U.S.A., 20742}, 1713 number = {CS-TR-2384}, 1714 month = jan, 1715 year = 1990, 1716 } 1717 1718 @article{Cui92, 1719 contributer = {rkrische@plg}, 1720 author = {Qian Cui and John Gannon}, 1721 title = {Data-oriented Exception Handling}, 1722 journal = {IEEE Transactions on Software Engineering}, 1723 month = may, 1724 year = 1992, 1725 volume = 18, 1726 number = 5, 1727 pages = {393-401}, 1728 } 1729 1730 @manual{SIMULA87, 1731 keywords = {Simula standard}, 1732 contributer = {gjditchfield@plg}, 1733 title = {Databehandling -- Programspr{\aa}k -- {SIMULA}}, 1734 organization= {Standardiseringskommissionen i Sverige}, 1735 note = {Svensk Standard SS 63 61 14}, 1736 year = 1987, 1737 abstract = { 1738 Standard for the programming language SIMULA. Written in English. 1739 } 1740 } 1741 1742 @article{Liskov75, 1743 keywords = {abstract data types, encapsulation, verification}, 1744 contributer = {gjditchfield@plg}, 1745 author = {Barbara H. Liskov}, 1746 title = {Data Types and Program Correctness}, 1747 journal = sigplan, 1748 year = 1975, 1749 month = jul, 1750 volume = 10, 1751 number = 7, 1752 pages = {16-17}, 1753 summary = { 1754 Type definitions should contain the implementation of the type and 1755 its operations. The grouping makes programs simpler and more 1756 understandable. Encapsulating the definition aids verification and 1757 forces a precise specification of the interface. 1758 } 1759 } 1760 1761 @article{dtav, 1762 keywords = {Russell, types}, 1763 contributer = {gjditchfield@plg}, 1764 author = {James Donahue and Alan Demers}, 1765 title = {Data Types are Values}, 1766 journal = toplas, 1767 month = jul, 1768 year = 1985, 1769 volume = 7, 1770 number = 3, 1771 pages = {426-445}, 1772 comment = { 1773 Data types are sets of operations providing interpretations of 1774 values from a meaningless, typeless universal value space. Types 1775 and operations are also contained in this value space. 1776 1777 Functions returning types replace generic types. 1778 1779 Polymorphic functions have type parameters. Evaluation is not 1780 macro expansion: 1781 \begin{verbatim} 1782 R == func [n:val integer; T:type[]] val integer 1783 {if n > 0 => r[n-1, Array[1,10,T]] # n <= 0 => 17 fi} 1784 \end{verbatim} 1785 } 1786 } 1787 1788 @article{Holt72, 1789 keywords = {concurrency, deadlock}, 1790 contributer = {pabuhr@plg}, 1791 author = {Richard C. Holt}, 1792 title = {Some Deadlock Properties of Computer Systems}, 1793 journal = acmcs, 1794 volume = 4, 1795 number = 3, 1796 month = sep, 1797 year = 1972, 1798 pages = {179-196}, 1799 } 1800 1801 @misc{debug-malloc, 1802 keywords = {memory allocation debugger}, 1803 contributer = {gjditchfield@plg}, 1804 author = {Conor P. Cahill}, 1805 title = {debug\_malloc}, 1806 howpublished= {comp.sources.unix, volume 22, issue 112}, 1807 abstract = { 1808 This package is a collection of routines which are a drop-in 1809 replacement for the malloc(3), memory(3), string(3), and bstring(3) 1810 library functions. 1811 } 1812 } 1813 1814 @book{sml, 1815 keywords = {}, 1816 contributer = {pabuhr@plg}, 1817 author = {Robin Milner and Mads Tofte and Robert Harper}, 1818 title = {The Definition of Standard {ML}}, 1819 publisher = {MIT Press}, 1820 address = {Cambridge, Massachusetts, U.S.A.}, 1821 year = 1990 1822 } 1823 1824 @techreport{sml:old, 1825 keywords = {}, 1826 contributer = {gjditchfield@plg}, 1827 author = {Robert Harper and Robin Milner and Mads Tofte}, 1828 title = {The Definition of Standard {ML}, Version 2}, 1829 institution = {Department of Computer Science, University of Edinburgh}, 1830 year = 1988, 1831 address = {The King's Buildings, Edinburgh EH9 3JZ}, 1832 type = {LFCS Report Series}, month = aug, number = {ECS-LFCS-88-62} 1833 } 1834 1835 @inproceedings{Reynolds72, 1836 keywords = {continuation}, 1837 contributer = {pabuhr@plg}, 1838 author = {John Reynolds}, 1839 title = {Definitional Interpreters for Higher Order Programming Languages}, 1840 booktitle = {ACM Conference Proceedings}, 1841 organization= {ACM}, 1842 year = 1972, 1843 pages = {717-740} 1844 } 1845 1846 @article{Buhr16, 1847 keywords = {Dekker's algorithm, software solution, mutual exclusion, performance experiment}, 1848 author = {Peter A. Buhr and David Dice and Wim H. Hesselink}, 1849 title = {Dekker's Mutual Exclusion Algorithm Made RW-Safe}, 1850 journal = {Concurrency and Computation: Practice and Experience}, 1851 volume = 28, 1852 number = 1, 1853 pages = {144-165}, 1854 month = jan, 1855 year = 2016, 1856 } 1857 1858 @misc{steelman, 1859 keywords = {Ada}, 1860 contributer = {gjditchfied@plg}, 1861 author = {High Order Language Working Group}, 1862 title = {Department of Defense Requirements for High Order Computer Programming Languages}, 1863 month = jun, year = 1978, 1864 note = {Reprinted in \cite{pldesign}.} 1865 } 1866 1867 @incollection{Tsay98, 1868 keywords = {local spins, mutual exclusion, read/write atomicity, refinement, scalability}, 1869 author = {Yih-Kuen Tsay}, 1870 title = {Deriving a scalable algorithm for mutual exclusion}, 1871 booktitle = {Distributed Computing}, 1872 editor = {Shay Kutten}, 1873 volume = {1499}, 1874 series = {LNCS}, 1875 publisher = {Springer}, 1876 address = {Berlin Heidelberg}, 1877 year = {1998}, 1878 pages = {393-407}, 1879 } 1880 1881 @article{Conway63, 1882 keywords = {coroutine, original}, 1883 contributer = {pabuhr@plg}, 1884 author = {Melvin E. Conway}, 1885 title = {Design of a Separable Transition-Diagram Compiler}, 1886 journal = cacm, 1887 month = jul, 1888 year = 1963, 1889 volume = 6, 1890 number = 7, 1891 pages = {396-408}, 1892 } 1893 1894 @book{Stroustrup94, 1895 keywords = {C++}, 1896 contributor = {wyrmok@plg}, 1897 author = {Bjarne Stroustrup}, 1898 title = {The Design and Evolution of {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 1899 publisher = {Addison-Wesley}, 1900 year = 1994 1901 } 1902 1903 @inproceedings{st:concurrent, 1904 keywords = {concurrency, Smalltalk, futures}, 1905 contributer = {gjditchfield@plg}, 1906 author = {Yasuhiko Yokote and Mario Tokoro}, 1907 title = {The Design and Implementation of {ConcurrentSmalltalk}}, 1908 crossref = "OOPSLA86", 1909 pages = {331-340}, 1910 comment = { 1911 Objects are ordinary Smalltalk objects or ``atomic'' objects, which 1912 process messages one at a time in FIFO order. Asynchronous method 1913 calls are made by appending ``\&'' at the call site. The sender does 1914 not wait for a reply. If the method returns a value, it 1915 (immediately?) returns a CBox object, which is like a future. The 1916 sender can send the ``receive'' message to the CBox, which blocks 1917 until the CBox contains a value. 1918 1919 A method can execute the ``\verb|^|'' statement to return an object 1920 and terminate, or it can execute ``\verb|^^|'' to return an object 1921 and continue execution. If ``\verb|^^foo|'' is executed after 1922 ``\verb|^^bar|'', foo is discarded, since bar has already been 1923 returned. 1924 1925 The article does not say whether asynchronous messages can be sent 1926 to ordinary objects, or whether ordinary messages can be sent to 1927 atomic objects. 1928 } 1929 } 1930 1931 @inproceedings{Ichbiah83, 1932 keywords = {Ada, packages, generics}, 1933 contributer = {gjditchfield@plg}, 1934 author = {Jean D. Ichbiah}, 1935 title = {On the Design of {Ada}}, 1936 booktitle = {Information Processing 83}, 1937 year = 1983, 1938 month = sep, pages = {1-10}, 1939 editor = {R. E. A. Mason}, 1940 organization= {IFIP}, 1941 publisher = {North-Holland}, 1942 summary = { 1943 Packages group related declarations or subprograms, and encapsulate 1944 data types. Separate interfaces and bodies promotes information 1945 hiding by removing the need to scan the body, allows the body to be 1946 confidential, and provides a better specification of the contract 1947 between client and implementor. Generics are an efficient way to 1948 factor out parts of similar definitions. 1949 } 1950 } 1951 1952 @book{Motet96, 1953 keywords = {Ada, exception handling}, 1954 contributer = {wyrmok@plg}, 1955 author = {G. Motet and A. Mapinard and J. C. Geoffroy}, 1956 title = {Design of Dependable {A}da Software}, 1957 publisher = {Prentice Hall}, 1958 year = 1996, 1959 } 1960 1961 @article{Richardson93, 1962 keywords = {C++, persistence, database}, 1963 contributer = {pabuhr@plg}, 1964 author = {Joel E. Richardson and Michael J. Carey and Daniel T. Schuh}, 1965 title = {The Design of the {E} Programming Language}, 1966 journal = toplas, 1967 month = jul, 1968 year = 1993, 1969 volume = 15, 1970 number = 3, 1971 pages = {494-534}, 1972 } 1973 1974 @article{Hansen81b, 1975 keywords = {concurrency, monitor, critical region}, 1976 contributer = {pabuhr@plg}, 1977 author = {Per {Brinch Hansen}}, 1978 title = {The Design of {E}dison}, 1979 journal = spe, 1980 volume = 11, 1981 number = 4, 1982 month = apr, 1983 year = 1981, 1984 pages = {363-396}, 1985 } 1986 1987 @book{Gamma95, 1988 keywords = {design patterns}, 1989 author = {Erich Gamma and Richard Helm and Ralph Johnson and John Vlissides}, 1990 title = {Design Patterns: Elements of Reusable Object-Oriented Software}, 1991 publisher = {Addison-Wesley}, 1992 year = 1995, 1993 series = {Professional Computing Series}, 1994 } 1995 1996 @inproceedings{Wirth74, 1997 keywords = {}, 1998 contributer = {gjditchfield@plg}, 1999 author = {Niklaus Wirth}, 2000 title = {On the Design of Programming Languages}, 2001 booktitle = {Information Processing 74}, 2002 year = 1974, 2003 pages = {386-393}, 2004 publisher = {North Holland Publishing Company}, 2005 note = {Reprinted in \cite{pldesign}.} 2006 } 2007 2008 @techreport{forceone, 2009 keywords = {Parametric polymorphism, ForceOne}, 2010 contributer = {gjditchfield@plg}, 2011 author = {Andrew K. Wright}, 2012 title = {Design of the Programming Language {ForceOne}}, 2013 institution = {University of Waterloo}, 2014 month = feb, year = 1987, 2015 number = {CS-87-10} 2016 } 2017 2018 @techreport{x-2, 2019 keywords = {object based}, 2020 contributer = {gjditchfield@plg}, 2021 author = {David W. Sandberg}, 2022 title = {The Design of the Programming Language {X-2}}, 2023 institution = {Oregon State University}, 2024 year = 1985, 2025 address = {Department of Computer Science, Corvallis, Oregon, 97331}, 2026 number = {85-60-1} 2027 } 2028 2029 @article{design, 2030 keywords = {Smalltalk, designing classes}, 2031 contributer = {gjditchfield@plg}, 2032 author = {Ralph E. Johnson and Brian Foote}, 2033 title = {Designing Reusable Classes}, 2034 journal = {Journal of Object-Oriented Programming}, 2035 year = 1988, 2036 volume = 1, number = 2, pages = {22-35}, 2037 comment = { 2038 Abstract classes represent standard protocols. ``It is better to 2039 inherit from an abstract class than from a concrete class''. 2040 Frameworks are collections of related abstract classes. Successful 2041 abstractions are discovered, not designed. 2042 2043 Protocols: ``If an operation X is implemented by performing a 2044 similar operation on the components of the receiver, then that 2045 operation should also be named X''. Eliminate case analysis by 2046 creating classes with the same operations. Create classes to 2047 represent bundles of parameters. Shrink methods larger than 30 2048 lines. 2049 2050 Hierarchies should be deep and narrow. Subclasses should be 2051 specializations. 2052 2053 Frameworks: split large classes. Factor implementation differences 2054 into subcomponents. Separate methods that do not share instance 2055 variables into components that reflect the different views of the 2056 object. Send messages to components, not self. Reduce implicit 2057 parameter passing through instance variables. 2058 } 2059 } 2060 2061 @article{dim:c++, 2062 keywords = {Dimensional Analysis, C++}, 2063 contributer = {gjditchfield@plg}, 2064 author = {Robert F. Cmelic and Narain Gehani}, 2065 title = {Dimensional Analysis with {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 2066 journal = {IEEE Software}, 2067 month = may, year = 1988, 2068 volume = 5, number = 3, pages = {21-29} 2069 } 2070 2071 @article{Wegner87, 2072 contributer = {pabuhr@plg}, 2073 author = {Peter Wegner}, 2074 title = {Dimensions of Object--Based Language Design}, 2075 journal = sigplan, 2076 volume = 22, 2077 number = 12, 2078 month = dec, 2079 year = 1987, 2080 pages = {168-182}, 2081 note = {Proceedings of the OOPSLA'87 Conference, Oct. 4--8, 1987, Orlando, Florida}, 2082 } 2083 2084 @book{Dijkstra76, 2085 keywords = {concurrent assignment}, 2086 author = {E. W. Dijkstra}, 2087 title = {A Discipline of Programming}, 2088 publisher = {Prentice-Hall}, 2089 year = 1976, 2090 } 2091 2092 @book{Lynch96, 2093 keywords = {distributed algorithms}, 2094 author = {Nancy A. Lynch}, 2095 title = {Distributed Algorithms}, 2096 publisher = {Morgan Kaufmann}, 2097 year = 1996, 2098 } 2099 2100 @book{Tanenbaum02, 2101 keywords = {distributed programming}, 2102 author = {Andrew S. Tanenbaum and Maarten van Steen}, 2103 title = {Distributed Systems: Principles and Paradigms}, 2104 publisher = {Prentice-Hall}, 2105 year = 2002, 2106 } 2107 2108 @inproceedings{Cargill90, 2109 keywords = {concurrency}, 2110 contributer = {pabuhr@plg}, 2111 author = {Tom A. Cargill}, 2112 title = {Does {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Really Need Multiple Inheritance?}, 2113 booktitle = {USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Conference Proceedings}, 2114 organization= {USENIX Association}, 2115 address = {San Francisco, California, U.S.A.}, 2116 month = apr, 2117 year = 1990, 2118 pages = {315-323} 2119 } 2120 2121 @unpublished{Duff83, 2122 keywords = {C, switch statement, control flow}, 2123 contributer = {pabuhr@plg}, 2124 author = {Tom Duff}, 2125 title = {Duff's Device}, 2126 month = nov, 2127 year = 1983, 2128 note = {\href{http://www.lysator.liu.se/c/duffs-device.html}{http://\-www.lysator.liu.se/\-c/\-duffs-device.html}} 2129 } 2130 2131 @manual{dwarf2, 2132 keywords = {Debugging DWARF2 specification}, 2133 contributer = {rkrische@plg}, 2134 title = {DWARF Debugging Information Format}, 2135 organization= {Unix International Programming Languages SIG}, 2136 publisher = {Unix International}, 2137 address = {Waterview Corporate Center, 20 Waterview Boulevard, Parsippany, NJ 07054}, 2138 year = {1993} 2139 } 2140 2141 @article{classicada, 2142 keywords = {Classic Ada}, 2143 contributer = {gjditchfield@plg}, 2144 author = {Cameron M. Donaldson}, 2145 title = {Dynamic Binding and Inheritance in an Object-Oriented {Ada} Design}, 2146 journal = {Journal of Pascal, {Ada} \& Modula-2}, 2147 year = 1990, 2148 month = {jul/aug}, volume = 9, number = 4, pages = {12-19}, 2149 comment = { 2150 Classes are like packages: they can contain subprograms, types, 2151 variables, generic instantiations, and exceptions. They can also 2152 contain class methods, instance methods, and instance variables, 2153 and define creation and initialization subprograms or methods for 2154 instances. Single inheritance provides inheritance of 2155 implementations. Dynamic binding is done with a {\em send} 2156 statement that invokes a class or instance method. A preprocessor 2157 converts Classic Ada to normal Ada. 2158 } 2159 } 2160 2161 @article{Costanza03, 2162 keywords = {dynamic call}, 2163 contributer = {pabuhr@plg}, 2164 author = {Pascal Costanza}, 2165 title = {Dynamic Scoped Functions as the Essence of {AOP}}, 2166 journal = sigplan, 2167 volume = 38, 2168 number = 8, 2169 month = aug, 2170 year = 2003, 2171 pages = {29-35}, 2172 } 2173 2174 % E 2175 2176 @inproceedings{Wegbreit71, 2177 keywords = {polymorphism}, 2178 contributer = {pabuhr@plg}, 2179 author = {B. Wegbreit}, 2180 title = {The ECL Programming System}, 2181 booktitle = {Proceedings of AFIPS 1971 FJCC}, 2182 publisher = {AFIPS Press, vol. 39}, 2183 address = {Montvale, New Jersey, U.S.A}, 2184 year = 1971, 2185 pages = {253-262}, 2186 } 2187 2188 @manual{JavaScript, 2189 keywords = {JavaScript}, 2190 contributer = {pabuhr}, 2191 title = {ECMAScript 2015 Language Specification {JavaScript}}, 2192 organization= {ECAM International}, 2193 address = {Rue du Rhone 114, CH-1204 Geneva, Switzerland}, 2194 month = jun, 2195 year = 2015, 2196 note = {6th Edition} 2197 } 2198 2199 @inproceedings{Peterson77, 2200 keywords = {N-thread software-solution mutual exclusion}, 2201 contributer = {pabuhr@plg}, 2202 author = {Gary L. Peterson and Michael J. Fischer}, 2203 title = {Economical Solutions for the Critical Section Problem in a Distributed System (Extended Abstract)}, 2204 booktitle = {Proceedings of the Ninth Annual ACM Symposium on Theory of Computing}, 2205 series = {STOC '77}, 2206 year = 1977, 2207 location = {Boulder, Colorado, USA}, 2208 pages = {91--97}, 2209 numpages = {7}, 2210 publisher = {ACM}, 2211 address = {New York, NY, USA}, 2212 } 2213 2214 @article{Hansen81a, 2215 keywords = {concurrency, monitor, critical region}, 2216 contributer = {pabuhr@plg}, 2217 author = {Per {Brinch Hansen}}, 2218 title = {{E}dison---a Multiprocessor Language}, 2219 journal = spe, 2220 volume = 11, 2221 number = 4, 2222 month = apr, 2223 year = {1981}, 2224 pages = {325-361}, 2225 } 2226 2227 @book{Eiffel, 2228 keywords = {Eiffel}, 2229 contributer = {pabuhr@plg}, 2230 author = {Bertrand Meyer}, 2231 title = {Eiffel: The Language}, 2232 publisher = {Prentice-Hall}, 2233 year = 1992, 2234 series = {Prentice Hall Object-Oriented Series}, 2235 } 2236 2237 @article{WS:overload, 2238 keywords = {compilation}, 2239 contributer = {gjditchfield@plg}, 2240 author = {Peter J. L. Wallis and Bernhard W. Silverman}, 2241 title = {Efficient Implementation of the {Ada} Overloading Rules}, 2242 journal = ipl, 2243 year = 1980, 2244 month = apr, volume = 10, number = 3, pages = {120-123}, 2245 comment = { 2246 The ``two-pass'' algorithm. An upward pass over a parse tree 2247 calculates the set of possible result types of operators. The 2248 root must have exactly one type, produced in one way. A 2249 downward pass selects the version of the operator that produces the 2250 desired result type, thus setting the result types of subtrees. 2251 See \cite{D:overload}. 2252 } 2253 } 2254 2255 @techreport{Habermann80, 2256 keywords = {Ada, threads}, 2257 contributer = {pabuhr@plg}, 2258 author = {A. N. Habermann and I. R. Nassi}, 2259 title = {Efficient Implementation of {Ada} Tasks}, 2260 institution = {Carnegie-Mellon University}, 2261 number = {CMU-CS-80-103}, 2262 year = 1980 2263 } 2264 2265 @article{Emerald, 2266 keywords = {concurrency, polymorphism}, 2267 contributer = {pabuhr@plg}, 2268 author = {Rajendra K. Raj and Ewan Tempero and Henry M. Levy and Andrew P. Black and Norman C. Hutchinson and Eric Jul}, 2269 title = {Emerald: A General-Purpose Programming Language}, 2270 journal = spe, 2271 month = jan, 2272 year = 1991, 2273 volume = 21, 2274 number = 1, 2275 pages = {91-118} 2276 } 2277 2278 @InProceedings{chambers89a, 2279 keywords = {maps, delegation}, 2280 author = "Craig Chambers and David Ungar and Elgin Lee", 2281 title = "An Efficient Implementation of {SELF}, a Dynamically-Typed 2282 Object-Oriented Language Based on Prototypes", 2283 crossref = "OOPSLA89", 2284 pages = {49-70} 2285 } 2286 2287 @article{oop:encapsulation, 2288 keywords = {Encapsulation, Inheritance, Subclasses, Multiple Inheritance}, 2289 contributer = {gjditchfield@plg}, 2290 author = {Alan Snyder}, 2291 title = {Encapsulation and Inheritance in Object-Oriented Programming 2292 Languages}, 2293 journal = sigplan, 2294 volume = {21}, number = {11}, 2295 pages = {38-45}, 2296 month = nov, year = 1986, 2297 comment = { 2298 Client, child interfaces should be distinct. Child interface 2299 shouldn't grant total access to parent. 2300 2301 Rules for redefining parent variable name in a child affect 2302 re-implementation of the parent. 2303 2304 Inheritance can be a promise to obey the semantics of the parent, 2305 or code reuse; the two may be contradictory. Unification 2306 exposes use of inheritance: a child can not be re-implemented 2307 without breaking code that assumes that it is a subclass of the 2308 original parent. If a class uses the names of its parents' 2309 ancestors, then inheritance is part of the parent's child 2310 interface. 2311 2312 Linearizing a multiple inheritance tree means that a class's use of 2313 calls on super need to be understood before it is used as a parent. 2314 Merging repeated ancestors exposes inheritance if an ancestor is 2315 re-implemented. Forbidding inheritance of distinct methods with 2316 the same name exposes implementation of ancestors. Proposed 2317 solution treats the set of ancestors as a tree. 2318 } 2319 } 2320 2321 @article{st:encapsulator, 2322 keywords = {encapsulator, Smalltalk, monitor}, 2323 contributer = {gjditchfield@plg}, 2324 author = {Geoffrey A. Pascoe}, 2325 title = {Encapsulators: A New Software Paradigm in Smalltalk-80}, 2326 journal = sigplan, 2327 volume = {21}, number = {11}, 2328 pages = {341-346}, 2329 month = nov, year = 1986, 2330 comment = { 2331 Encapsulators are objects that surround other objects. 2332 Pre- and post-actions are performed when messages are sent to the 2333 encapsulated object. They are created here by sending the message 2334 object: to an encapsulator class. Examples given are monitors, 2335 atomic objects, and Model (for model-view-controller interfaces). 2336 2337 Encapsulator classes use a family of selectors that the 2338 encapsulated object will not respond to. Messages for the 2339 encapsulated object are passed on by trapping them with the 2340 doesNotUnderstand method. Various fiddles were needed when setting 2341 up the class and metaclass hierarchies. A few selectors (==, 2342 class) always directly invoke primitive methods; they can't be 2343 used. 2344 2345 Can an encapsulated object be an encapsulator? Probably, but the 2346 middle object's selectors are inaccessible. 2347 } 2348 } 2349 2350 @manual{EPT, 2351 keywords = {concurrency, light-weight threads}, 2352 contributer = {pabuhr@plg}, 2353 key = {Encore}, 2354 title = {Encore Parallel Thread Manual, 724-06210}, 2355 organization= {Encore Computer Corporation}, 2356 month = may, 2357 year = 1988, 2358 } 2359 2360 @manual{Erlang, 2361 keywords = {Erlang}, 2362 contributer = {pabuhr}, 2363 title = {Erlang Reference Manual User's Guide, Vertion 7.0}, 2364 organization= {Erlang/OTP System Documentation}, 2365 address = {1430 Broadway, New York, New York 10018}, 2366 month = jun, 2367 year = 2015, 2368 note = {\href{http://www.erlang.org/doc/pdf/otp-system-documentation.pdf}{\textsf{http://www.erlang.org/\-doc/\-pdf/\-otp-system-documentation.pdf}}}, 2369 } 2370 2371 @inproceedings{MH88, 2372 keywords = {modules, general sums, general products}, 2373 contributer = {gjditchfield@plg}, 2374 author = {John C. Mitchell and Robert Harper}, 2375 title = {The Essence of {ML}}, 2376 booktitle = popl, 2377 year = 1988, 2378 pages = {28-46} 2379 } 2380 2381 @book{LeVerrand, 2382 keywords = {}, 2383 author = {D. Le Verrand}, 2384 title = {Evaluating {Ada}}, 2385 publisher = {North Oxford Academic}, 2386 year = 1985 2387 } 2388 2389 @inproceedings{Bloom79, 2390 keywords = {concurrency}, 2391 contributer = {pabuhr@plg}, 2392 author = {Toby Bloom}, 2393 title = {Evaluating Synchronization Mechanisms}, 2394 booktitle = {Proceedings of the Seventh Symposium on Operating Systems Principles}, 2395 organization= {ACM SIGOPS}, 2396 address = {Pacific Grove, California, U.S.A}, 2397 month = dec, 2398 year = 1979, 2399 pages = {24-32} 2400 } 2401 2402 @article{Buhr06a, 2403 keywords = {concurrency, C++, uC++}, 2404 contributer = {pabuhr@plg}, 2405 author = {Peter A. Buhr and Richard C. Bilson}, 2406 title = {Examining $\mu${C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} : 2407 High-level Object-Oriented Concurrency in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 2408 journal = {Dr. Dobb's Journal : Software Tools for the Professional Programmer}, 2409 month = feb, 2410 year = 2006, 2411 volume = 31, 2412 number = 2, 2413 pages = {36-40}, 2414 } 2415 2416 @article{ExceptionalC, 2417 keywords = {exception handling, asynchronous events}, 2418 contributer = {wyrmok@plg}, 2419 author = {N. H. Gehani}, 2420 title = {Exceptional {C} or {C} with Exceptions}, 2421 journal = spe, 2422 year = 1992, 2423 month = oct, 2424 volume = 22, 2425 number = 10, 2426 pages = {827-848}, 2427 comment = { 2428 It is the most extensive exceptional handling mechanism thus 2429 far. Though it doesn't have Mesa resumption, it has 2430 asynchronous signal which is more general and abstract than 2431 the unix signal mechanism. It has an Eiffel like retry 2432 mechanism. Consequently, the scope of guarded region is not 2433 immediately terminated when an exception is raised. In fact, 2434 an exception handler creates a scope under its guarded 2435 region. 2436 } 2437 } 2438 2439 @incollection{Buhr02, 2440 keywords = {exception handling}, 2441 contributer = {pabuhr@plg}, 2442 author = {Peter A. Buhr and Ashif Harji and W. Y. Russell Mok}, 2443 title = {Exception Handling}, 2444 editor = {Marvin V. Zelkowitz}, 2445 booktitle = {Advances in COMPUTERS}, 2446 publisher = {Academic Press}, 2447 volume = 56, 2448 year = 2002, 2449 pages = {245-303}, 2450 } 2451 2452 @article{Cargill94, 2453 keywords = {exception handling}, 2454 contributer = {pabuhr@plg}, 2455 author = {Tom Cargill}, 2456 title = {Exception Handling: a False Sense of Security}, 2457 journal = {{C}{\kern-.2em\hbox{\large\texttt{+\kern-.2em+}}} Report}, 2458 year = 1994, 2459 month = nov, 2460 volume = 6, 2461 number = 9, 2462 note = {http://www.informit.com/\-content/\-images/\-020163371x/\-supplements/\-Exception\_\-Handling\_\-Article.\-html} 2463 } 2464 2465 @article{Knudsen84, 2466 keywords = {static exception handling, BETA, sequel}, 2467 contributer = {wyrmok@plg}, 2468 author = {J{\o}rgen Lindskov Knudsen}, 2469 title = {Exception Handling --- A Static Approach}, 2470 journal = spe, 2471 year = 1984, 2472 month = may, 2473 volume = 14, 2474 number = 5, 2475 pages = {429-449}, 2476 } 2477 2478 @article{Drew94, 2479 keywords = {exceptions, exception handling}, 2480 contributer = {wyrmok@plg}, 2481 author = {Steven J. Drew and K. John Gough}, 2482 title = {Exception Handling: Expecting the Unexpected}, 2483 journal = {Computer Languages}, 2484 year = 1994, 2485 month = may, 2486 volume = 20, 2487 number = 2, 2488 comment = { 2489 A recent and good survey on various exception handling mechanisms found 2490 in imperative programming languages. It classifies various mechanism in 2491 terms of flow control and scopes. Asynchronous exceptions and signals 2492 are also covered as Exceptional C is in the survey. 2493 } 2494 } 2495 2496 @article{Koenig90, 2497 keywords = {exception handling}, 2498 contributer = {pabuhr@plg}, 2499 author = {Andrew Koenig and Bjarne Stroustrup}, 2500 title = {Exception Handling for {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 2501 journal = joop, 2502 month = {July/August}, 2503 year = 1990, 2504 volume = 3, 2505 number = 2, 2506 pages = {16-33}, 2507 } 2508 2509 @article{Lee83, 2510 keywords = {exception handling, C}, 2511 contributer = {pabuhr@plg}, 2512 author = {P. A. Lee}, 2513 title = {Exception Handling in {C} Programs}, 2514 journal = spe, 2515 volume = 13, 2516 number = 5, 2517 month = may, 2518 year = 1983, 2519 pages = {389-405}, 2520 } 2521 2522 @article{Liskov79, 2523 keywords = {exception handling}, 2524 contributer = {pabuhr@plg}, 2525 author = {Barbara H. Liskov and Alan Snyder}, 2526 title = {Exception Handling in {CLU}}, 2527 journal = ieeese, 2528 month = nov, 2529 year = 1979, 2530 volume = {SE-5}, 2531 number = 6, 2532 pages = {546-558}, 2533 } 2534 2535 @article{Szalas85, 2536 keywords = {concurrency, C++}, 2537 contributer = {pabuhr@plg}, 2538 author = {Andrzej Szalas and Danuta Szczepanska}, 2539 title = {Exception Handling in Parallel Computations}, 2540 journal = sigplan, 2541 volume = 20, 2542 number = 10, 2543 month = oct, 2544 year = 1985, 2545 issn = {0362-1340}, 2546 pages = {95-104}, 2547 url = {http://doi.acm.org/10.1145/382286.382385}, 2548 doi = {http://doi.acm.org/10.1145/382286.382385}, 2549 acmid = {382385}, 2550 publisher = {ACM}, 2551 address = {New York, NY, USA}, 2552 } 2553 2554 @article{MacLaren77, 2555 keywords = {exception handling, PL/I}, 2556 contributer = {pabuhr@plg}, 2557 author = {M. Donald MacLaren}, 2558 title = {Exception Handling in {PL/I}}, 2559 journal = sigplan, 2560 volume = 12, 2561 number = 3, 2562 month = mar, 2563 year = 1977, 2564 pages = {101-104}, 2565 note = {Proceedings of an ACM Conference on Language Design for Reliable Software, 2566 March 28--30, 1977, Raleigh, North Carolina, U.S.A.}, 2567 } 2568 2569 @article{Goodenough75, 2570 keywords = {exception handling}, 2571 contributer = {pabuhr@plg}, 2572 author = {J. B. Goodenough}, 2573 title = {Exception Handling: Issues and a Proposed Notation}, 2574 journal = cacm, 2575 month = dec, 2576 year = 1975, 2577 volume = 18, 2578 number = 12, 2579 pages = {683-696}, 2580 } 2581 2582 @article{Lampson80, 2583 keywords = {monitors}, 2584 contributer = {pabuhr@plg}, 2585 author = {B. W. Lampson and D. D. Redell}, 2586 title = {Experience with Processes and Monitors in Mesa}, 2587 journal = cacm, 2588 volume = 23, 2589 number = 2, 2590 month = feb, 2591 year = 1980, 2592 pages = {105-117}, 2593 } 2594 2595 @inproceedings{Shopiro87, 2596 keywords = {concurrency}, 2597 contributer = {pabuhr@plg}, 2598 author = {Jonathan E. Shopiro}, 2599 title = {Extending the {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Task System for Real-Time Control}, 2600 booktitle = {Proceedings and Additional Papers {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Workshop}, 2601 organization= {USENIX Association}, 2602 address = {Santa Fe, New Mexico, U.S.A}, 2603 month = nov, 2604 year = 1987, 2605 pages = {77-94} 2606 } 2607 2608 @article{Modula-2+, 2609 keywords = {Modula-2, exceptions, garbage collection, concurrency}, 2610 contributer = {gjditchfield@plg}, 2611 author = {Paul Rovner}, 2612 title = {Extending Modula-2 to Build Large, Integrated Systems}, 2613 journal = {IEEE Software}, 2614 month = nov, year = 1986, 2615 volume = 3, number = 6, pages = {46-57}, 2616 comment = { 2617 Exceptions can have a parameter. Procedures can declare the 2618 exceptions they can propagate; others are converted to {\tt 2619 SYSTEM.Fail}. If they don't, all exceptions propagate. 2620 Block cleanup statements execute no matter how control leaves the 2621 block. 2622 2623 {\tt REF t} is a garbage-collected pointer. A {\tt REFANY} can be 2624 assigned any {\tt REF t}. Open array types can be used in 2625 parameter and {\tt REF} types. {\tt NEW} creates arrays of fixed, 2626 dynamically determined size. 2627 2628 The {\tt THREAD} module provides lightweight processes, semaphores, 2629 and conditions. A statement {\tt LOCK {\em semaphore} DO 2630 {\em statements} END} is built in. 2631 2632 {\tt SAFE} modules do run-time checks, and only import {\tt 2633 SAFE} modules. One implementation module can implement several 2634 definition modules. Opaque type implementations can be 2635 repeated in modules that import its definition, so implementation 2636 modules can collaborate. The linker checks that all 2637 implementations are the same. 2638 } 2639 } 2640 2641 @inproceedings{BNRPascal, 2642 keywords = {concurrency, rendezvous}, 2643 contributer = {pabuhr@plg}, 2644 author = {R. Kamel and N. Gammage}, 2645 title = {Experience with Rendezvous}, 2646 booktitle = {Proceedings of the 1988 International Conference on Computer Languages}, 2647 month = oct, 2648 year = 1988, 2649 pages = {143-149} 2650 } 2651 2652 % F 2653 2654 @inproceedings{Knudsen01, 2655 keywords = {Beta, exception handling}, 2656 contributer = {pabuhr@plg}, 2657 author = {J{\o}rgen Lindskov Knudsen}, 2658 title = {Fault Tolerance and Exception Handling in {BETA}}, 2659 booktitle = {Exception Handling}, 2660 publisher = {Springer-Verlag}, 2661 volume = 2022, 2662 series = {Lecture Notes in Computer Science}, 2663 year = 2001, 2664 pages = {1-17} 2665 } 2666 2667 @article{Lamport87, 2668 keywords = {software solutions, mutual exclusion, fast}, 2669 contributer = {pabuhr@plg}, 2670 author = {Leslie Lamport}, 2671 title = {A Fast Mutual Exclusion Algorithm}, 2672 journal = tocs, 2673 volume = 5, 2674 number = 1, 2675 month = jan, 2676 year = {1987}, 2677 pages = {1--11}, 2678 publisher = {ACM}, 2679 address = {New York, NY, USA}, 2680 } 2681 2682 @inproceedings{F-bound, 2683 keywords = {}, 2684 contributer = {gjditchfield@plg}, 2685 author = {Peter Canning and William Cook and Walter Hill and Walter Olthoff and John C. Mitchell}, 2686 title = {F-Bounded Polymorphism for Object-Oriented Programming}, 2687 booktitle = {Fourth International Conference on Functional Programming Languages and Computer Architecture}, 2688 year = 1989, 2689 month = sep, 2690 pages = {273-280} 2691 } 2692 2693 @mastersthesis{Wasik08, 2694 author = {Ayelet Wasik}, 2695 title = {Features of a Multi-Threaded Memory Allocator}, 2696 school = {University of Waterloo}, 2697 year = 2008, 2698 month = jan, 2699 address = {Waterloo, Ontario, Canada, N2L 3G1}, 2700 note = {\textsf{http://uwspace.uwaterloo.ca/\-bitstream/\-10012/\-3501/\-1/\-Thesis.pdf}}, 2701 } 2702 2703 @article{Holzmann94, 2704 keywords = {semaphore, flags}, 2705 contributer = {pabuhr@plg}, 2706 author = {Gerard J. Holzmann and Bj\"{o}rn Pehrson}, 2707 title = {The First Data Networks}, 2708 journal = {Scientific American}, 2709 month = jan, 2710 year = 1994, 2711 volume = 12, 2712 number = 1, 2713 pages = {124-129}, 2714 } 2715 2716 @article{Bohm66, 2717 keywords = {goto, structured programming}, 2718 contributer = {pabuhr@plg}, 2719 author = {C. B\"{o}hm and G. Jacopini}, 2720 title = {Flow diagrams, Turing Machines and Languages with only two Formation Rules}, 2721 journal = cacm, 2722 month = may, 2723 year = 1966, 2724 volume = 9, 2725 number = 5, 2726 pages = {366-371}, 2727 } 2728 2729 @manual{Fortran95, 2730 keywords = {Fortran 95}, 2731 contributer = {pabuhr@plg}, 2732 key = {Fortran95}, 2733 title = {Fortran 95 Standard, ISO/IEC 1539}, 2734 organization = {Unicomp, Inc.}, 2735 address = {7660 E. Broadway, Tucson, Arizona, U.S.A, 85710}, 2736 month = jan, 2737 year = 1997, 2738 } 2739 2740 @manual{Fortran08, 2741 keywords = {ISO/IEC Fortran 08}, 2742 contributer = {pabuhr@plg}, 2743 key = {Fortran08}, 2744 title = {Programming Languages -- {Fortran} Part 1}, 2745 organization= {International Standard ISO/IEC 1989:2014}, 2746 publisher = {International Standard Organization}, 2747 address = {http://www.iso.org}, 2748 year = 2010, 2749 } 2750 2751 @book{Andrews00:book, 2752 keywords = {concurrency}, 2753 contributer = {pabuhr@plg}, 2754 author = {Gregory R. Andrews}, 2755 title = {Foundations of Multithreaded, Parallel and Distributed Programming}, 2756 publisher = {Addison--Wesley}, 2757 year = 2000, 2758 } 2759 2760 @article{Agha89, 2761 keywords = {actors, concurrency}, 2762 contributer = {pabuhr@plg}, 2763 author = {Gul A. Agha}, 2764 title = {Foundational Issues in Concurrent Computing}, 2765 journal = sigplan, 2766 month = apr, 2767 year = 1989, 2768 volume = 24, 2769 number = 4, 2770 pages = {60-65}, 2771 note = {Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent Programming, 2772 Sept. 26--27, 1988, San Diego, California, U.S.A}, 2773 } 2774 2775 @article{ool, 2776 keywords = {}, 2777 contributer = {gjditchfield@plg}, 2778 author = {Douglas T. Ross}, 2779 title = {Toward Foundations for the Understanding of Type}, 2780 journal = sigplan, 2781 year = 1976, 2782 volume = 11, pages = {63-65}, 2783 note = {Conference on Data: Abstraction, Definition and Structure}, 2784 summary = { 2785 Possibly the first use (without definition, alas) of the phrase 2786 "object oriented language". Metaphysical to the point of incoherence. 2787 } 2788 } 2789 2790 @article{frames, 2791 keywords = {frames}, 2792 contributer = {gjditchfield@plg}, 2793 author = {Paul G. Basset}, 2794 title = {Frame-Based Software Engineering}, 2795 journal = {IEEE Software}, 2796 month = jul, year = 1987, 2797 volume = 4, number = 4, pages = {9-16} 2798 } 2799 2800 @article{Sutter05, 2801 keywords = {concurrency, C++}, 2802 contributer = {pabuhr@plg}, 2803 author = {Herb Sutter}, 2804 title = {A Fundamental Turn Toward Concurrency in Software}, 2805 journal = {Dr. Dobb's Journal : Software Tools for the Professional Programmer}, 2806 month = mar, 2807 year = 2005, 2808 volume = 30, 2809 number = 3, 2810 pages = {16-22}, 2811 } 2812 2813 @inproceedings{Dony01, 2814 keywords = {Smalltalk, exception handling}, 2815 contributer = {pabuhr@plg}, 2816 author = {Chistophe Dony}, 2817 title = {A Fully Object-Oriented Exception Handling System: Rationale and Smalltalk Implementation}, 2818 booktitle = {Exception Handling}, 2819 publisher = {Springer-Verlag}, 2820 volume = 2022, 2821 series = {Lecture Notes in Computer Science}, 2822 year = 2001, 2823 pages = {18-38} 2824 } 2825 2826 @misc{FW, 2827 key = {FW}, 2828 contributer = {gjditchfield@plg}, 2829 title = {Funk \& Wagnalls Standard Desk Dictionary}, 2830 year = 1980 2831 } 2832 2833 @book{Knuth73V1, 2834 contributer = {pabuhr@plg}, 2835 author = {Donald E. Knuth}, 2836 title = {Fundamental Algorithms}, 2837 series = {The Art of Computer Programming}, 2838 publisher = {Addison-Wesley}, 2839 year = 1973, 2840 volume = 1, 2841 edition = {second}, 2842 } 2843 2844 @inproceedings{Strachey, 2845 keywords = {polymorphism}, 2846 contributer = {gjditchfield@plg}, 2847 author = {C. Strachey}, 2848 title = {Fundamental Concepts in Programming Languages}, 2849 booktitle = {Lecture Notes for the International Summer School in Computer Programming}, 2850 year = 1967, 2851 month = aug, 2852 address = {Copenhagen}, 2853 comment = { 2854 Defines ad-hoc and parametric polymorphism. 2855 } 2856 } 2857 2858 @article{Eisenberg72, 2859 keywords = {concurrency, N-Process solution, O(N)}, 2860 contributer = {pabuhr@plg}, 2861 author = {Murray A. Eisenberg and Michael R. McGuire}, 2862 title = {Further Comments on {D}ijkstra's Concurrent Programming Control Problem}, 2863 journal = cacm, 2864 month = nov, 2865 year = 1972, 2866 volume = 15, 2867 number = 11, 2868 pages = {999}, 2869 } 2870 2871 % G 2872 2873 @article{Boehm88, 2874 keywords = {conservative garbage collection, C}, 2875 contributer = {gjditchfield@plg}, 2876 author = {Hans-Juergen Boehm and Mark Weiser}, 2877 title = {Garbage Collection in an Uncooperative Environment}, 2878 journal = spe, 2879 month = sep, 2880 year = 1988, 2881 volume = 18, 2882 number = 9, 2883 pages = {807-820} 2884 } 2885 2886 @manual{gcc, 2887 keywords = {}, 2888 contributer = {gjditchfield@plg}, 2889 title = {GCC}, 2890 author = {Richard M. Stallman}, 2891 organization= {Free Software Foundation}, 2892 address = {Cambridge, MA} 2893 } 2894 2895 @article{doUpon, 2896 keywords = {formal verification, axiomatic semantics, control structures}, 2897 contributer = {gjditchfield@plg}, 2898 author = {Ed Anson}, 2899 title = {A Generalized Iterative Construct and Its Semantics}, 2900 journal = toplas, 2901 volume = {9}, number = {4}, 2902 pages = {567-581}, 2903 month = oct, year = 1987, 2904 comment = { 2905 \begin{verbatim} 2906 do 2907 P1 -> L1 2908 [] P2 -> L2 2909 ... 2910 [] Pm -> Lm 2911 upon 2912 Q1 -> M1 2913 [] Q2 -> M2 2914 ... 2915 [] qn -> mn 2916 od 2917 \end{verbatim} 2918 2919 If there is an i such that Qi is true, execute Mi and terminate. 2920 Otherwise, if there is an i such that Pi is true, execute Li and 2921 repeat the loop. Otherwise, fail. 2922 } 2923 } 2924 2925 @unpublished{Bilson, 2926 keywords = {generic programming, generics, polymorphism}, 2927 contributor = {a3moss@plg}, 2928 author = {Richard C. Bilson and Glen Ditchfield and Peter A. Buhr}, 2929 title = {Generic Programming with Inferred Models}, 2930 } 2931 2932 2933 @article{Haskell, 2934 keywords = {lazy evaluation, type class}, 2935 contributer = {pabuhr}, 2936 author = {Paul Hudak and Joseph H. Fasel}, 2937 title = {A Gentle Introduction to Haskell}, 2938 journal = sigplan, 2939 volume = 27, 2940 number = 5, 2941 month = may, 2942 year = 1992, 2943 pages = {T1-53}, 2944 } 2945 2946 @manual{Go, 2947 keywords = {Go programming language}, 2948 contributer = {pabuhr@plg}, 2949 title = {{Go} Programming Language}, 2950 author = {Robert Griesemer and Rob Pike and Ken Thompson}, 2951 organization= {Google}, 2952 year = 2009, 2953 note = {\href{http://golang.org/ref/spec}{http://golang.org/\-ref/\-spec}}, 2954 } 2955 2956 @article{Dijkstra68a, 2957 keywords = {goto}, 2958 contributer = {pabuhr@plg}, 2959 author = {Edsger W. Dijkstra}, 2960 title = {Go To Statement Considered Harmful}, 2961 journal = cacm, 2962 month = mar, 2963 year = 1968, 2964 volume = 11, 2965 number = 3, 2966 pages = {147-148}, 2967 note = {Reprinted in \cite{Yourdon79} pp. 29--36.}, 2968 } 2969 2970 @article{Choi91, 2971 keywords = {contra-variance, functions}, 2972 contributer = {pabuhr@plg}, 2973 author = {Injun Choi and Michael V. Mannino}, 2974 title = {Graph Interpretation of Methods: A Unifying Framework for Polymorphism in Object-Oriented Programming}, 2975 journal = {OOPS Messenger}, 2976 volume = 2, 2977 number = 1, 2978 month = jan, 2979 year = 1991, 2980 pages = {38-54}, 2981 } 2982 2983 @misc{GNU-C, 2984 keywords = {C, ANSI C}, 2985 contributer = {pabuhr@plg}, 2986 author = {Richard Stallman}, 2987 title = {The Free Software Foundation's Gnu {C} Compiler}, 2988 howpublished= {Free Software Foundation, 1000 Mass Ave., Cambridge, MA, U.S.A., 02138}, 2989 year = 1989, 2990 } 2991 2992 @article{Dijkstra:green, 2993 keywords = {ada}, 2994 contributer = {gjditchfield@plg}, 2995 author = {Edsger W. Dijkstra}, 2996 title = {On the GREEN Language submitted to the DoD}, 2997 journal = sigplan, 2998 year = 1978, 2999 month = oct, 3000 volume = 13, 3001 number = 10, 3002 pages = {16-21} 3003 } 3004 3005 @inproceedings{Miller02, 3006 keywords = {exception handling}, 3007 contributer = {pabuhr@plg}, 3008 author = {Robert Miller and Anand Tripathi}, 3009 title = {The Guardian Model for Exception Handling in Distributed Systems}, 3010 booktitle = {21st Symposium on Reliable Distributed Systems}, 3011 organization= {IEEE}, 3012 address = {Suita, Japan}, 3013 year = 2002, 3014 month = oct, 3015 pages = {304-313} 3016 } 3017 3018 @phdthesis{Chen09, 3019 author = {Jun Chen}, 3020 title = {Guided Testing of Concurrent Programs Using Value Schedules}, 3021 school = {University of Waterloo}, 3022 year = 2009, 3023 month = sep, 3024 address = {Waterloo, Ontario, Canada, N2L 3G1}, 3025 note = {\textsf{http://uwspace.uwaterloo.ca/bitstream/\-10012/\-4735/\-1/\-Chen-Jun.pdf}}, 3026 } 3027 3028 @misc{GNU-C++, 3029 keywords = {C++, GNU C}, 3030 contributer = {pabuhr@plg}, 3031 author = {Michael D. Tiemann}, 3032 title = {User's Guide to GNU {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 3033 howpublished= {Free Software Foundation, 1000 Mass Ave., Cambridge, MA, U.S.A., 02138}, 3034 month = mar, 3035 year = 1990, 3036 } 3037 3038 % H 3039 3040 @article{Michael04a, 3041 keywords = {Lock-free, synchronization, concurrent programming, memory management, multiprogramming, dynamic data structures}, 3042 author = {Maged M. Michael}, 3043 title = {Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects}, 3044 journal = ieeepds, 3045 volume = 15, 3046 number = 6, 3047 month = jun, 3048 year = 2004, 3049 pages = {491-504}, 3050 publisher = {IEEE Press}, 3051 address = {Piscataway, NJ, USA}, 3052 } 3053 3054 @techreport{Hermes90, 3055 keywords = {processes, distributed computing}, 3056 contributer = {pabuhr@plg}, 3057 author = {Robert E. Strom and David F. Bacon and Arthur P. Goldberg and Andy Lowry and Daniel M. Yellin and Shaula Alexander Yemini}, 3058 title = {Hermes: A Language for Distributed Computing}, 3059 institution = {IBM T. J. Watson Research Center}, 3060 address = {Yorktown Heights, New York, U.S.A., 10598}, 3061 month = oct, 3062 year = 1990, 3063 } 3064 3065 @book{Hermes91, 3066 keywords = {processes, distributed computing}, 3067 contributer = {pabuhr@plg}, 3068 author = {Robert E. Strom and David F. Bacon and Arthur P. Goldberg and Andy Lowry and Daniel M. Yellin and Shaula Alexander Yemini}, 3069 title = {Hermes: A Language for Distributed Computing}, 3070 publisher = {Prentice Hall}, 3071 series = {Innovative Technology}, 3072 year = 1991, 3073 } 3074 3075 @article{katzenelson83b, 3076 contributer = {gjditchfield@plg}, 3077 author = "Jacob Katzenelsen", 3078 title = "Higher Level Programming and Data Abstraction---A Case Study using Enhanced C", 3079 journal = spe, 3080 year = 1983, 3081 volume = 13, 3082 number = 7, 3083 pages = {577-596}, 3084 month = jul 3085 } 3086 3087 @techreport{Hoare73, 3088 keywords = {}, 3089 contributer = {gjditchfield@plg}, 3090 author = {C. A. R. Hoare}, 3091 title = {Hints on Programming Language Design}, 3092 institution = {Stanford University Computer Science Department}, 3093 year = 1973, 3094 month = dec, 3095 number = {CS-73-403}, 3096 note = {Reprinted in \cite{pldesign}.} 3097 } 3098 3099 @article{Dijkstra71, 3100 keywords = {monitor, secretary}, 3101 contributer = {pabuhr@plg}, 3102 author = {E. W. Dijkstra}, 3103 title = {Hierarchical Ordering of Sequential Processes}, 3104 journal = acta, 3105 volume = 1, 3106 pages = {115-138}, 3107 year = 1971, 3108 } 3109 3110 @article{Buhr15a, 3111 keywords = {software solution, mutual exclusion, performance experiment}, 3112 author = {Peter A. Buhr and David Dice and Wim H. Hesselink}, 3113 title = {High-Performance {$N$}-Thread Software Solutions for Mutual Exclusion}, 3114 journal = {Concurrency and Computation: Practice and Experience}, 3115 volume = 27, 3116 number = 3, 3117 pages = {651-701}, 3118 month = mar, 3119 year = 2015, 3120 } 3121 3122 @article{Ackermann28, 3123 keywords = {recursion, Ackermann function}, 3124 contributer = {pabuhr@plg}, 3125 author = {Wilhelm Ackermann}, 3126 title = {Zum Hilbertschen Aufbau der reellen Zahlen}, 3127 publisher = {Springer}, 3128 journal = {Mathematische Annalen}, 3129 number = 1, 3130 volume = 99, 3131 pages = {118-133}, 3132 month = dec, 3133 year = 1928, 3134 } 3135 3136 @inproceedings{typeclass, 3137 keywords = {Hindley/Miller type systems, Haskell}, 3138 contributer = {gjditchfield@plg}, 3139 author = {Philip Wadler and Stephen Blott}, 3140 title = {How to make {\em Ad-Hoc} Polymorphism Less {\em Ad-Hoc}}, 3141 booktitle = popl, 3142 year = 1989, 3143 pages = {60-76}, 3144 organization= {Association for Computing Machinery} 3145 } 3146 3147 % I 3148 3149 @book{IBM370, 3150 keywords = {370, IBM}, 3151 contributer = {pabuhr@plg}, 3152 key = {IBM370}, 3153 title = {{IBM} System/370 Principles of Operation}, 3154 publisher = {IBM}, 3155 number = {GA22-7000-8}, 3156 month = oct, 3157 year = 1981, 3158 edition = {9th} 3159 } 3160 3161 @book{Icon, 3162 keywords = {Icon}, 3163 contributer = {pabuhr@plg}, 3164 author = {Ralph E. Griswold and Madge T. Griswold}, 3165 title = {The Icon Programming Language}, 3166 publisher = {Prentice-Hall}, 3167 year = 1983, 3168 } 3169 3170 @inproceedings{Valois94, 3171 keywords = {lock free, queue}, 3172 contributer = {pabuhr@plg}, 3173 author = {John D. Valois}, 3174 title = {Implementing Lock-Free Queues}, 3175 booktitle = {Seventh International Conference on Parallel and Distributed Computing Systems}, 3176 address = {Las Vegas, Nevada, U.S.A.}, 3177 year = {1994}, 3178 pages = {64-69}, 3179 } 3180 3181 @article{Hehner81, 3182 keywords = {concurrency, critical section, bakery algorithm}, 3183 contributer = {pabuhr@plg}, 3184 author = {Eric C. R. Hehner and R. K. Shyamasundar}, 3185 title = {An Implementation of {P} and {V}}, 3186 journal = ipl, 3187 year = 1981, 3188 month = aug, 3189 volume = 12, 3190 number = 4, 3191 pages = {196-198}, 3192 } 3193 3194 @incollection{Steenkiste91, 3195 keywords = {lisp}, 3196 contributer = {gjditchfield@plg}, 3197 author = {Peter A. Steenkiste}, 3198 title = {The Implementation of Tags and Run-Time Checking}, 3199 booktitle = {Topics in Advanced Language Implementation}, 3200 pages = {3-24}, 3201 year = 1991, 3202 editor = {Peter Lee}, 3203 chapter = {1}, 3204 publisher = {The MIT Press} 3205 } 3206 3207 @techreport{Roberts89, 3208 keywords = {}, 3209 contributer = {pabuhr@plg}, 3210 author = {Eric S. Roberts}, 3211 title = {Implementing Exceptions in {C}}, 3212 institution = {Digital Systems Research Center}, 3213 address = {130 Lytton Avenue, Palo Alto, California, 94301}, 3214 number = {40}, 3215 month = mar, 3216 year = 1989, 3217 } 3218 3219 @mastersthesis{Bilson03, 3220 keywords = {Cforall, parametric polymorphism, overloading}, 3221 contributer = {pabuhr@plg}, 3222 author = {Richard C. Bilson}, 3223 title = {Implementing Overloading and Polymorphism in Cforall}, 3224 school = {School of Computer Science, University of Waterloo}, 3225 year = 2003, 3226 address = {Waterloo, Ontario, Canada, N2L 3G1}, 3227 note = {\href{http://plg.uwaterloo.ca/theses/BilsonThesis.pdf}{http://\-plg.uwaterloo.ca/\-theses/\-BilsonThesis.pdf}}, 3228 } 3229 3230 @article{Buhr05b, 3231 keywords = {monitor, automatic signal, implicit signal}, 3232 contributer = {pabuhr@plg}, 3233 author = {Peter A. Buhr and Ashif S. Harji}, 3234 title = {Implicit-signal monitors}, 3235 journal = toplas, 3236 volume = 27, 3237 number = 6, 3238 month = nov, 3239 year = 2005, 3240 issn = {0164-0925}, 3241 pages = {1270--1343}, 3242 doi = {http://doi.acm.org/10.1145/1108970.1108975}, 3243 publisher = {ACM Press}, 3244 address = {New York, NY, USA}, 3245 } 3246 3247 @article{Baker77, 3248 author = {Henry C. Baker, Jr. and Carl Hewitt}, 3249 title = {The Incremental Garbage Collection of Processes}, 3250 journal = {SIGART Bulletin}, 3251 publisher = {ACM}, 3252 address = {New York, NY, USA}, 3253 month = aug, 3254 year = 1977, 3255 pages = {55-59}, 3256 issn = {0163-5719}, 3257 doi = {http://doi.acm.org/10.1145/872736.806932}, 3258 } 3259 3260 @book{Algol68, 3261 keywords = {Algol68}, 3262 contributer = {pabuhr@plg}, 3263 author = {C. H. Lindsey and S. G. van der Meulen}, 3264 title = {Informal Introduction to ALGOL 68}, 3265 publisher = {North-Holland}, 3266 address = {London}, 3267 year = 1977, 3268 } 3269 3270 @inproceedings{Cook90, 3271 keywords = {f-bounded polymorhpism, lambda calculus}, 3272 contributer = {gjditchfield@plg}, 3273 author = {William R. Cook and Walter L. Hill and Peter S. Canning}, 3274 title = {Inheritance is Not Subtyping}, 3275 booktitle = popl, 3276 year = 1990, 3277 pages = {125-135}, 3278 organization= {Association for Computing Machinery}, 3279 abstract = { 3280 In typed object-oriented languages the subtype relation is 3281 typically based on the inheritance hierarchy. This approach, 3282 however, leads either to insecure type-systems or to restrictions 3283 on inheritance that make it less flexible than untyped Smalltalk 3284 inheritance. We present a new typed model of inheritance that 3285 allows more of the flexibility of Smalltalk inheritance within a 3286 statically-typed system. Significant features of our analysis are 3287 the introduction of polymorphism into the typing of inheritance and 3288 the uniform application of inheritance to objects, classes and 3289 types. The resulting notion of {\em type inheritance} allows us to 3290 show that the type of an inherited object is an inherited type but 3291 not always a subtype. 3292 } 3293 } 3294 3295 @inproceedings{MMR92, 3296 keywords = {}, 3297 contributer = {gjditchfield@plg}, 3298 author = {Robert E. Minnear and Patrick A. Muckelbauer and Vincent F. Russo}, 3299 title = {Integrating the {Sun Microsystems} {XDR/RPC} Protocols 3300 into the {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Stream Model}, 3301 booktitle = {USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Conference Proceedings}, 3302 year = 1992, 3303 month = aug, 3304 pages = {295-312}, 3305 organization= {USENIX Association}, 3306 address = {2590 Ninth Street, Suite 215, Berkeley, CA 94710}, 3307 abstract = { 3308 This paper reports our experiences integrating the Sun Microsystems 3309 RPC and XDR protocol specifications into the C++ model of 3310 input/output streams. As part of the {\it Renaissance} operating 3311 system project, we wish to construct network servers and clients, 3312 written in C++, which interoperate with existing UNIX clients 3313 and servers. We discovered that, although it would be possible to 3314 re-implement the procedural based XDR/RPC implementation 3315 distributed by Sun Microsystems in C++, it is far cleaner to 3316 integrate the protocols with the C++ I/O stream model. We 3317 feel the resulting model provides a cleaner way of implementing RPC 3318 clients and servers without losing functionality or compatibility 3319 with existing clients and servers. 3320 } 3321 } 3322 3323 @inproceedings{Zuo08, 3324 keywords = {shared memory systems,intelligent multiport memory,multiprocessors systems,shared memory system}, 3325 author = {Wang Zuo and Wang Zuo and Li Jiaxing}, 3326 title = {An Intelligent Multi-Port Memory}, 3327 booktitle = {Symposium on Intelligent Information Technology Application Workshops, Shanghai, China}, 3328 month = dec, 3329 year = 2008, 3330 pages = {251-254}, 3331 publisher = {IEEE Computer Society}, 3332 address = {Los Alamitos, CA, USA}, 3333 } 3334 3335 @book{Francez96, 3336 keywords = {await, formal}, 3337 contributer = {pabuhr@plg}, 3338 author = {Nissim Francez and Ira R. Forman}, 3339 title = {Interacting Processes: A Multiparty Approach to Coordinated Distributed Programming}, 3340 publisher = {Addison-Wesley}, 3341 series = {ACM Press Books}, 3342 year = 1996, 3343 } 3344 3345 @article{Labreche90, 3346 keywords = {concurrency, C++}, 3347 contributer = {pabuhr@plg}, 3348 author = {Pierre Labr{\`{e}}che}, 3349 title = {Interactors: A Real-Time Executive with Multiparty Interactions in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 3350 journal = sigplan, 3351 volume = 25, 3352 number = 4, 3353 month = apr, 3354 year = 1990, 3355 pages = {20-32}, 3356 } 3357 3358 @inproceedings{interfaces, 3359 keywords = {parameterized interfaces, classes, recursion/inheritance}, 3360 contributer = {gjditchfield@plg}, 3361 author = {Peter S. Canning and William R. Cook and Walter L. Hill and 3362 Walter G. Olthoff}, 3363 title = {Interfaces for Strongly-Typed Object-Oriented Programming}, 3364 crossref = "OOPSLA89", 3365 pages = {457-467}, 3366 abstract = { 3367 This paper develops a system of explicit interfaces for 3368 object-oriented programming. The system provides the benefits of 3369 module interfaces found in languages like Ada and Modula-2 while 3370 preserving the expressiveness that gives untyped object-oriented 3371 languages like Smalltalk their flexibility. Interfaces are 3372 interpreted as polymorphic types to make the system sufficiently 3373 powerful. We use interfaces to analyze the properties of 3374 inheritance, and identify three distinct kinds of inheritance in 3375 object-oriented programming, corresponding to objects, classes, and 3376 interfaces, respectively. Object interfaces clarify the 3377 distinction between interface containment and inheritance and give 3378 insight into limitations caused by equating the notions of type and 3379 class in many typed object-oriented programming languages. 3380 Interfaces also have practical consequences for design, 3381 specification, and maintenance of object-oriented systems. 3382 } 3383 } 3384 3385 @phdthesis{Girard72, 3386 keywords = {universal quantification}, 3387 contributer = {gjditchfield@plg}, 3388 author = {J.-Y. Girard}, 3389 title = {Interpretation fonctionelle et elimination des coupures de 3390 l'arithmetique d'ordre superieur}, 3391 school = {Universite Paris}, 3392 year = {1972} 3393 } 3394 3395 @article{Karaorman93, 3396 keywords = {Eiffel, concurrency libraries}, 3397 contributer = {pabuhr@plg}, 3398 author = {Murat Karaorman and John Bruno}, 3399 title = {Introducing Concurrency to a Sequential Language}, 3400 journal = cacm, 3401 month = sep, 3402 year = 1993, 3403 volume = 36, 3404 number = 9, 3405 pages = {103-116} 3406 } 3407 3408 @book{Corman92, 3409 keywords = {PRAM, parallel algorithms}, 3410 contributer = {pabuhr@plg}, 3411 author = {Thomas H. Cormen and Charles E. Leiserson and Ronald L. Rivest}, 3412 title = {Introduction to Algorithms}, 3413 publisher = {MIT Press/McGraw-Hill}, 3414 series = {Electrical Engineering and Computer Science Series}, 3415 year = 1992, 3416 } 3417 3418 @book{Hopcroft79, 3419 keywords = {finite-state machine, push-dowm automata}, 3420 contributer = {pabuhr@plg}, 3421 author = {John E. Hopcroft and Jeffrey D. Ullman}, 3422 title = {Introduction to Automata Theory, Languages and Computation}, 3423 publisher = {Addison-Wesley}, 3424 year = 1979, 3425 } 3426 3427 @techreport{walker87, 3428 keywords = {CCS}, 3429 contributer = {gjditchfield@plg}, 3430 author = {David Walker}, 3431 title = {Introduction to a Calculus of Communicating Systems}, 3432 institution = {Laboratory for Foundations of Computer Science}, 3433 year = 1987, 3434 address = {Department of Computer Science, University of Edinburgh, Edinburgh EH9 3JZ}, 3435 month = jun, 3436 number = {ECS-LFCS-87-22}, 3437 } 3438 3439 @article{katzenelson83a, 3440 author = {Jacob Katzenelson}, 3441 title = {Introduction to Enhanced C (EC)}, 3442 journal = spe, 3443 volume = 13, 3444 number = 7, 3445 year = 1983, 3446 month = jul, 3447 pages = {551-576}, 3448 } 3449 3450 @book{Deitel90, 3451 keywords = {concurrency, operating systems}, 3452 contributer = {pabuhr@plg}, 3453 author = {Harvey M. Deitel}, 3454 title = {An Introduction to Operating Systems}, 3455 publisher = {Addison-Wesley}, 3456 year = 1990, 3457 edition = {second}, 3458 } 3459 3460 @techreport{Birrell89, 3461 keywords = {threads, monitors}, 3462 contributer = {pabuhr@plg}, 3463 author = {Andrew D. Birrell}, 3464 title = {An Introduction to Programming with Threads}, 3465 institution = {Digital Systems Research Center}, 3466 address = {130 Lytton Avenue, Palo Alto, California, 94301}, 3467 number = {35}, 3468 month = jan, 3469 year = 1989, 3470 note = {{\textsf{http://www.hpl.hp.com/\-techreports/\-Compaq-DEC/\-SRC-RR-35.html}}}, 3471 3472 } 3473 3474 @article{t/o, 3475 keywords = {Trellis/Owl}, 3476 contributer = {gjditchfield@plg}, 3477 author = {Craig Schaffert and Topher Cooper and Bruce Bullis and Mike Kilian and Carrie Wilpot}, 3478 title = {An Introduction to Trellis/Owl}, 3479 journal = sigplan, 3480 volume = 21, 3481 number = 11, 3482 year = 1986, 3483 month = nov, 3484 pages = {9-16}, 3485 } 3486 3487 @inproceedings{Hibbard77, 3488 keywords = {algol-68, concurrency}, 3489 contributer = {pabuhr@plg}, 3490 author = {Peter G. Hibbard and P. Knueven and B. W. Leverett}, 3491 title = {Issues in the Efficient Implementation and Use of Multiprocessing in {Algol} 68}, 3492 booktitle = {Proceedings of the 5th Annual iii Conference}, 3493 address = {Guidel, France}, 3494 month = may, 3495 year = 1977, 3496 pages = {203-221} 3497 } 3498 3499 @inproceedings{Miller97, 3500 keywords = {exception handling, software-engineering}, 3501 contributer = {pabuhr@plg}, 3502 author = {Robert Miller and Anand Tripathi}, 3503 title = {Issues with Exception Hnadling in Object-Oriented Systems}, 3504 booktitle = {ECOOP'97}, 3505 publisher = {Springer-Verlag}, 3506 volume = 1241, 3507 series = {Lecture Notes in Computer Science}, 3508 year = 1997, 3509 pages = {85-103} 3510 } 3511 3512 @article{Murer96, 3513 keywords = {interators, generators, cursors}, 3514 contributer = {pabuhr@plg}, 3515 author = {Stephan Murer and Stephen Omohundro and David Stoutamire and Clemens Szyperski}, 3516 title = {Iteration Abstraction in Sather}, 3517 journal = toplas, 3518 month = jan, 3519 year = 1996, 3520 volume = 18, 3521 number = 1, 3522 pages = {1-15}, 3523 } 3524 3525 % J 3526 3527 @book{Java, 3528 keywords = {Java}, 3529 contributer = {pabuhr@plg}, 3530 author = {James Gosling and Bill Joy and Guy Steele and Gilad Bracha}, 3531 title = {The {Java} Language Specification}, 3532 publisher = {Addison-Wesley}, 3533 year = 2000, 3534 edition = {second}, 3535 } 3536 3537 @manual{Java8, 3538 keywords = {Java SE 8}, 3539 contributer = {pabuhr@plg}, 3540 author = {James Gosling and Bill Joy and Guy Steele and Gilad Bracha and Alex Buckley}, 3541 title = {The {Java} Language Specification}, 3542 publisher = {Oracle}, 3543 year = 2015, 3544 edition = {Java SE 8}, 3545 } 3546 3547 @manual{JUC, 3548 keywords = {Java concurrency library}, 3549 contributer = {pabuhr@plg}, 3550 title = {java.util.concurrency}, 3551 author = {Doug Lea}, 3552 organization= {Oracle}, 3553 year = 2014, 3554 note = {\href{http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html}{\textsf{http://docs.oracle.com/\-javase/7/\-docs/\-api/\-java/\-util/\-concurrent/\-package-summary.html}}}, 3555 } 3556 3557 % K 3558 3559 @article{Duggan96, 3560 keywords = {concurrency, critical section}, 3561 contributer = {pabuhr@plg}, 3562 author = {Dominic Duggan and Gordon V. Cormack and John Ophel}, 3563 title = {Kinded Type Inference for Parametric Overloading}, 3564 journal = acta, 3565 volume = 33, 3566 number = 1, 3567 year = 1996, 3568 pages = {21-68}, 3569 } 3570 3571 @article{Peter35, 3572 keywords = {recursion, Ackermann function}, 3573 contributer = {pabuhr@plg}, 3574 author = {R{\'{o}}zsa P{\'{e}}ter}, 3575 title = {Konstruktion nichtrekursiver Funktionen}, 3576 publisher = {Springer}, 3577 journal = {Mathematische Annalen}, 3578 number = 111, 3579 volume = 1, 3580 pages = {42-60}, 3581 month = dec, 3582 year = 1935, 3583 } 3584 3585 % L 3586 3587 @TechReport{WVWR88:L, 3588 contributer = {gjditchf@plg}, 3589 author = {Hanno Wupper and Jan Vytopil and Martin Wieczorek and Dick de Reus}, 3590 title = {{L}_{3333}: A Simple Language with Static Typing of Hard Real-Time Constraints}, 3591 institution = {Department of Informatics, Faculty of Science, Catholic University Nijmegen}, 3592 year = 1988, 3593 number = {88-3}, 3594 address = {Katholieke Universiteit Nijmegen, Fakulteit der Wiskunde 3595 en Natuurwetenschappen, Infomatica V, Toernooiveld, 6512 3596 ED Nijmegen, The Netherlands}, 3597 month = apr, 3598 annote = {A polymorphic typed lambda calculus with \begin{itemize} 3599 \item A trivial type, ``!'', with a single element. 3600 \item Labelled types, distinct from each other. 3601 ``!False'' and ``!True'' are distinct types, each 3602 containing a single value serving as boolean false and 3603 true. ``2'' is an abbreviation for ``!0 succ succ'', the 3604 type containing only 2. 3605 \item Disjunction types ``\{| !False, !True |\}''. Interval 3606 types are abbreviations for disjunctions. 3607 \item Conjunction types ``\{\& real Re, real Im \&\}'', where 3608 ``Re'' and ``Im'' are type labels that distinguish between the 3609 fields. 3610 \item Pair types ``\{^ a, b ^\}'', for use in recursive types 3611 and dyadic infix functions. 3612 \item Function types, universal types, existential types, 3613 and subtyping (viewed as coercion), as in Fun. 3614 \end{itemize} 3615 Disjunctions and conjunctions types are associative and 3616 commutative (i.e. flat). Each type has a matching 3617 constructor. Functions use pattern matching on type 3618 labels to strip labels and extract conjunction fields: 3619 \begin{verbatim} 3620 \lambda n {0...1000000 Guilders}. ... n ... 3621 -- both argument and n are amounts in Guilders. 3622 \lambda n {0...1000000} Guilders. ... n ... 3623 -- argument in Guilders, but n is in 0...1000000. 3624 \end{verbatim} 3625 ``Function bundles'' (conjunctions of functions), applied 3626 to arguments, replace Dijkstra's guarded if...fi, but the 3627 bundles are first-class and the guards are part of their 3628 type. 3629 3630 The same trick used to define the type ``2'' is used to 3631 move absolute times into the type system, to allow static 3632 checking. ``0`'' denotes a time before the system begins 3633 execution. ``\#`'' denotes ``eventually'', and ``?`'' 3634 denotes ``maybe never''. ``a\\t'' and ``a@t'' are types 3635 of a value of type a that will be available no later 3636 (earlier) than time t. Universals and existentials use 3637 subtyping to parameterize functions by start time: 3638 \begin{verbatim} 3639 let f {\forall t > \#`}. {a\t} \on {b\t+d} 3640 f{then} y -- argument y must be available at time ``then''. 3641 \end{verbatim} 3642 Functions can return before their arguments are available 3643 if they don't use them. However, function {\em bundles} 3644 can't return until their result type is known, so the 3645 lower and upper time bounds of the bundle are the 3646 second-last upper bound of the component functions: at 3647 that time, there is only one alternative left. 3648 3649 Explicit time parameterization allows slack in time 3650 specification. Tools could point out slack or determine 3651 degree of parallelism.} 3652 } 3653 3654 @mastersthesis{Clarke90, 3655 keywords = {concurrency, postponing requests}, 3656 contributer = {pabuhr@plg}, 3657 author = {Charles L. A. Clarke}, 3658 title = {Language and Compiler Support for Synchronous Message Passing Architectures}, 3659 school = {University of Waterloo}, 3660 year = 1990, 3661 address = {Waterloo, Ontario, Canada, N2L 3G1} 3662 } 3663 3664 @article{Tennent77, 3665 keywords = {abstraction, correspondence, Pascal}, 3666 contributer = {gjditchfield@plg}, 3667 author = {R. D. Tennent}, 3668 title = {Language Design Methods Based on Semantic Principles}, 3669 journal = acta, 3670 year = 1977, 3671 volume = 8, 3672 number = 2, 3673 pages = {97-112}, 3674 note = {reprinted in \cite{pldesign}}, 3675 abstract = { 3676 Two language design methods based on principles derived from the 3677 denotational approach to programming language semantics are 3678 described and illustrated by an application to the language Pascal. 3679 The principles are, firstly, the correspondence between parametric 3680 and declarative mechanisms and secondly, a principle of abstraction 3681 for programming languages adapted from set theory. Several useful 3682 extensions and generalizations of Pascal emerge by applying these 3683 principles, including a solution to the array parameter problem, 3684 and a modularization facility. 3685 }, 3686 } 3687 3688 @article{Liskov86, 3689 keywords = {synchronous communication, concurrency}, 3690 contributer = {pabuhr@plg}, 3691 author = {Barbara Liskov and Maurice Kerlihy and Lucy Gilbert}, 3692 title = {Limitations of Synchronous Communication with Static 3693 Process Structure in Languages for Distributed Computing}, 3694 journal = {}, 3695 volume = {}, 3696 number = {}, 3697 month = {}, 3698 year = {}, 3699 pages = {}, 3700 } 3701 3702 @article{Linda, 3703 keywords = {Linda, concurrency}, 3704 contributer = {pabuhr@plg}, 3705 author = {Nicholas Carriero and David Gelernter}, 3706 title = {Linda in Context}, 3707 journal = cacm, 3708 volume = 32, 3709 number = 4, 3710 month = apr, 3711 year = 1989, 3712 pages = {444-458} 3713 } 3714 3715 @book{Weissman67, 3716 keywords = {lisp}, 3717 author = {Clark Weissman}, 3718 title = {Lisp 1.5 Primer}, 3719 publisher = {Dickenson Publishing}, 3720 year = 1967, 3721 } 3722 3723 @article{Sundell08, 3724 keywords = {lock free, deque}, 3725 contributer = {pabuhr@plg}, 3726 author = {H{\r{a}}kan Sundell and Philippas Tsigas}, 3727 title = {Lock-free Deques and Doubly Linked Lists}, 3728 journal = {J. Parallel Distrib. Comput.}, 3729 volume = 68, 3730 number = 7, 3731 year = 2008, 3732 pages = {1008-1020}, 3733 } 3734 3735 @article{Cormack89, 3736 keywords = {parsing, LR, error recovery}, 3737 contributer = {pabuhr@plg}, 3738 author = {Gordon V. Cormack}, 3739 title = {An {LR} Substring Parser for Noncorrecting Syntax Error Recovery}, 3740 journal = sigplan, 3741 volume = 24, 3742 number = 7, 3743 month = jul, 3744 year = 1989, 3745 pages = {161-169}, 3746 note = {Proceedings of the {SIGPLAN}~'89 Conference on Programming Language Design and Implementation} 3747 } 3748 3749 % M 3750 3751 @book{M68K, 3752 keywords = {M680XX, Motorola}, 3753 contributer = {pabuhr@plg}, 3754 key = {Motorola}, 3755 title = {M68000 Family Programmer's Reference Manual}, 3756 publisher = {Motorola}, 3757 year = 1992, 3758 } 3759 3760 @article{c++libs, 3761 keywords = {directory structure}, 3762 contributer = {gjditchfield@plg}, 3763 author = {J. M. Coggins and G. Bollella}, 3764 title = {Managing {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Libraries}, 3765 journal = sigplan, 3766 year = 1989, 3767 month = jun, volume = 24, number = 6, pages = {37-48}, 3768 abstract = { 3769 This paper describes a scheme we have used to manage a large 3770 library written in the C++ language. The scheme imposes a 3771 directory structure, and represents dependency hierarchy in a 3772 globally accessible file we call the 'prelude' file. We also 3773 discuss the structure of the description files (makefiles) used 3774 with the UNIX options we have found to be useful in reducing the 3775 size of the library, and how to minimize recompilation time after 3776 trivial changes to the source code of the library. 3777 } 3778 } 3779 3780 @inproceedings{mprof, 3781 keywords = {malloc}, 3782 contributer = {gjditchfield@plg}, 3783 author = {Benjamin Zorn and Paul Hilfinger}, 3784 title = {A Memory Allocation Profiler for {C} and Lisp Programs}, 3785 booktitle = {Summer 1988 {USENIX} proceedings}, 3786 year = 1988 3787 } 3788 3789 @manual{MMTk, 3790 keywords = {Java memory management}, 3791 contributer = {pabuhr@plg}, 3792 title = {MMTk: The Memory Management Toolkit}, 3793 author = {Steve Blackburn and Robin Garner and Daniel Frampton}, 3794 month = sep, 3795 year = 2006, 3796 note = {\textsf{http://cs.anu.edu.au/\-\char`\~Robin.Garner/\-mmtk-guide.pdf}}, 3797 } 3798 3799 @article{Adve10, 3800 keywords = {Java memory management}, 3801 contributer = {pabuhr@plg}, 3802 author = {Sarita V. Adve and Hans-J. Boehm}, 3803 title = {Memory Models: A Case for Rethinking Parallel Languages and Hardware}, 3804 journal = cacm, 3805 volume = 53, 3806 number = 8, 3807 month = aug, 3808 year = 2010, 3809 pages = {90-101}, 3810 publisher = {ACM}, 3811 address = {New York, NY, USA}, 3812 } 3813 @techreport{Mesa, 3814 keywords = {monitors, packages}, 3815 contributer = {pabuhr@plg}, 3816 author = {James G. Mitchell and William Maybury and Richard Sweet}, 3817 title = {Mesa Language Manual}, 3818 institution = {Xerox Palo Alto Research Center}, 3819 number = {CSL--79--3}, 3820 month = apr, 3821 year = 1979 3822 } 3823 3824 @article{Andrews89, 3825 keywords = {semaphore, split-binary, baton}, 3826 contributer = {pabuhr@plg}, 3827 author = {Gregory R. Andrews}, 3828 title = {A Method for Solving Synronization Problems}, 3829 journal = scp, 3830 volume = 13, 3831 number = 4, 3832 month = dec, 3833 year = 1989, 3834 pages = {1-21}, 3835 } 3836 3837 @inproceedings{Mitchell78, 3838 keywords = {Mesa}, 3839 contributer = {pabuhr@plg}, 3840 author = {James G. Mitchell}, 3841 title = {Mesa: A Designer's User Perspective}, 3842 booktitle = {Spring CompCom 78}, 3843 organization= {Sixteenth IEEE Computer Society International Conference}, 3844 address = {San Francisco, California, U.S.A.}, 3845 month = feb, 3846 year = 1978, 3847 pages = {36-39}, 3848 note = {IEEE Catalog No. 78CH1328-4C}, 3849 } 3850 3851 @article{Gentleman81, 3852 keywords = {messages, concurrency}, 3853 contributer = {pabuhr@plg}, 3854 author = {W. Morven Gentleman}, 3855 title = {Message Passing between Sequential Processes: 3856 the Reply Primitive and the Administrator Concept}, 3857 journal = spe, 3858 month = may, 3859 year = 1981, 3860 volume = 11, 3861 number = 5, 3862 pages = {435-466} 3863 } 3864 3865 @article{Cormack88, 3866 keywords = {concurrency}, 3867 contributer = {pabuhr@plg}, 3868 author = {G. V. Cormack}, 3869 title = {A Micro Kernel for Concurrency in C}, 3870 journal = spe, 3871 month = may, 3872 year = 1988, 3873 volume = 18, 3874 number = 4, 3875 pages = {485-491} 3876 } 3877 3878 @article{Buhr90a, 3879 keywords = {concurrency, light-weight process, shared memory}, 3880 contributer = {pabuhr@plg}, 3881 author = {Peter A. Buhr and Richard A. Stroobosscher}, 3882 title = {The $\mu${S}ystem: Providing Light-Weight Concurrency on Shared-Memory Multiprocessor Computers Running {UNIX}}, 3883 journal = spe, 3884 volume = 20, 3885 number = 9, 3886 month = sep, 3887 year = 1990, 3888 pages = {929-963}, 3889 } 3890 3891 @techreport{uSystem, 3892 keywords = {C, concurrency, light-weight process, shared memory}, 3893 contributer = {pabuhr@plg}, 3894 author = {Peter A. Buhr and Hamish I. Macdonald and Richard A. Stroobosscher}, 3895 title = {$\mu${S}ystem Annotated Reference Manual, Version 4.4.3}, 3896 institution = {Department of Computer Science, University of Waterloo}, 3897 address = {Waterloo, Ontario, Canada, N2L 3G1}, 3898 month = sep, 3899 year = 1994, 3900 note = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-uSystem/\-uSystem.ps.gz}}}, 3901 } 3902 3903 @book{Mips4000, 3904 key = {Mips4000}, 3905 title = {MIPS R4000 Microprocessor User's Manual}, 3906 publisher = {MIPS Computer Systems Inc}, 3907 year = 1991, 3908 } 3909 3910 @inproceedings{Mjolner, 3911 keywords = {Mjolner, hierarchical windows}, 3912 contributer = {pabuhr@plg}, 3913 author = {G\"{o}rel Hedin and Boris Magnusson}, 3914 title = {The Mj{\o}lner Environment: Direct Interaction with Abstractions}, 3915 booktitle = {Proceedings of the European Conference on Object Oriented Programming}, 3916 organization= {ECOOP'88}, 3917 publisher = {Springer-Verlag}, 3918 volume = 322, 3919 editor = {S. Gjessing and K. Nygaard}, 3920 address = {Oslo, Norway}, 3921 month = aug, 3922 year = 1988, 3923 pages = {41-54}, 3924 note = {Lecture Notes in Computer Science, Ed. by G. Goos and J. Hartmanis}, 3925 } 3926 3927 @article{Skillicorn98, 3928 keywords = {parallel models}, 3929 contributer = {pabuhr@plg}, 3930 author = {David B. Skillicorn and Domenico Talia}, 3931 title = {Models and Languages for Parallel Computation}, 3932 journal = acmcs, 3933 volume = 30, 3934 number = 2, 3935 month = jun, 3936 year = 1998, 3937 pages = {123-169}, 3938 } 3939 3940 @article{Werther96, 3941 keywords = {C++, language syntax}, 3942 contributer = {pabuhr@plg}, 3943 author = {Ben Werther and Damian Conway}, 3944 title = {A Modest Proposal: {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Resyntaxed}, 3945 journal = sigplan, 3946 volume = 31, 3947 number = 11, 3948 month = nov, 3949 year = 1996, 3950 pages = {74-82}, 3951 } 3952 3953 @book{Alexandrescu01, 3954 keywords = {c design-patterns programming}, 3955 contributer = {pabuhr@plg}, 3956 author = {Andrei Alexandrescu}, 3957 title = {Modern C++ Design: Generic Programming and Design Patterns Applied}, 3958 publisher = {Addison-Wesley Professional}, 3959 month = feb, 3960 year = 2001, 3961 isbn = {0201704315}, 3962 } 3963 3964 @book{Tanenbaum92, 3965 keywords = {concurrency, operating systems}, 3966 contributer = {pabuhr@plg}, 3967 author = {Andrew S. Tanenbaum}, 3968 title = {Modern Operating Systems}, 3969 publisher = {Prentice-Hall}, 3970 year = 1992, 3971 } 3972 3973 @article{Wirth77, 3974 keywords = {modules, coroutines}, 3975 contributer = {pabuhr}, 3976 author = {Niklaus Wirth}, 3977 title = {Modula: a Language for Modular Multiprogramming}, 3978 journal = spe, 3979 month = {January--February}, 3980 year = 1977, 3981 volume = 7, 3982 number = 1, 3983 pages = {3-35}, 3984 } 3985 3986 @book{Harbison92, 3987 contributer = {mhcoffin}, 3988 author = {Samuel P. Harbison}, 3989 title = {Modula-3}, 3990 publisher = {Prentise Hall, Inc.}, 3991 year = {1992}, 3992 comment = {This is a textbook for learning Modula-3.} 3993 } 3994 3995 @techreport{Modula-3:old, 3996 keywords = {Modula-3, inheritance, type extension}, 3997 contributer = {gjditchfield@plg}, 3998 author = {Luca Cardelli and James Donahue and Lucille Glassman and Mick 3999 Jordan and Bill Kalsow and Greg Nelson}, 4000 title = {Modula-3 Report}, 4001 institution = {Systems Research Center}, 4002 address = {130 Lytton Avenue, Palo Alto, California 94301}, 4003 month = aug, 4004 year = 1988, 4005 number = 31 4006 } 4007 4008 @article{Dueck90, 4009 keywords = {attribute grammars}, 4010 contributer = {pabuhr@plg}, 4011 author = {Gerald D. P. Dueck and Gordon V. Cormack}, 4012 title = {Modular Attribute Grammars}, 4013 journal = {The Computer Journal}, 4014 month = apr, 4015 year = 1990, 4016 volume = 33, 4017 number = 2, 4018 pages = {164-172}, 4019 } 4020 4021 @article{Yemini85, 4022 keywords = {exception handling}, 4023 contributer = {pabuhr@plg}, 4024 author = {Shaula Yemini and Daniel M. Berry}, 4025 title = {A Modular Verifiable Exception-Handling Mechanism}, 4026 journal = toplas, 4027 month = apr, 4028 year = 1985, 4029 volume = 7, 4030 number = 2, 4031 pages = {214-243}, 4032 } 4033 4034 @article{Buhr95b, 4035 keywords = {concurrency, monitors, classification}, 4036 contributer = {pabuhr@plg}, 4037 author = {Peter A. Buhr and Michel Fortier and Michael H. Coffin}, 4038 title = {Monitor Classification}, 4039 journal = acmcs, 4040 volume = 27, 4041 number = 1, 4042 month = mar, 4043 year = 1995, 4044 pages = {63-107}, 4045 } 4046 4047 @article{Hoare74, 4048 keywords = {monitor}, 4049 contributer = {pabuhr@plg}, 4050 author = {C. A. R. Hoare}, 4051 title = {Monitors: An Operating System Structuring Concept}, 4052 journal = cacm, 4053 volume = 17, 4054 number = 10, 4055 month = oct, 4056 year = 1974, 4057 pages = {549-557}, 4058 annote = { 4059 } 4060 } 4061 4062 @inbook{Buhr99a, 4063 keywords = {concurrency, monitors, classification}, 4064 contributer = {pabuhr@plg}, 4065 author = {Peter A. Buhr and Michel Fortier and Michael H. Coffin}, 4066 title = {Encyclopedia of Computer Science and Technology}, 4067 chapter = {Monitor Taxonomy}, 4068 publisher = {Marcel Dekker, Inc}, 4069 volume = {40, supplement 25}, 4070 year = 1999, 4071 pages = {191-212}, 4072 } 4073 % editor = {Allen Kent and James G. Williams}, 4074 4075 @manual{MPI, 4076 keywords = {MPI}, 4077 contributer = {pabuhr@plg}, 4078 title = {MPI: A Message-Passing Interface Standard, Version 3.1}, 4079 organization= {Message Passing Interface Forum}, 4080 address = {University of Tennessee, Knoxville, Tennessee}, 4081 month = jun, 4082 year = 2015, 4083 note = {\href{http://www.mpi-forum.org/docs/mpi-3.1/mpi31-report.pdf}{\textsf{http://www.mpi-forum.org/\-docs/\-mpi-3.1/\-mpi31-report.pdf}}}, 4084 } 4085 4086 @article{multilisp, 4087 keywords = {futures, scheme}, 4088 contributer = {gjditchfield@plg}, 4089 author = {Halstead, Jr.,Robert H.}, 4090 title = {Multilisp: A Language for Concurrent Symbolic Programming}, 4091 journal = toplas, 4092 volume = 7, 4093 number = 4, 4094 pages = {501-538}, 4095 month = oct, 4096 year = 1985, 4097 comment = { 4098 (future E) begins evaluating the expression E, and 4099 returns a ``future'' representing the value. When evaluation is 4100 finished, the value of E replaces the future. Operations that need 4101 the future's value suspend until it is available. Assignment and 4102 parameter passing do not suspend. Future introduces concurrency 4103 between the calculation of a value and its use; reference to 4104 futures is a synchronization mechanism. 4105 4106 (pcall F A B ... C) concurrently evaluates F, A, B, ... C, and then 4107 applies F to the arguments. pcall can be built from future and a 4108 ``touch'' operation. pcall is included because it may not be easy 4109 to determine that there are no critical sections between the future 4110 expression and the code between the future call and the value's 4111 first use. 4112 4113 (delay E) is like future, but E's process does not begin until its 4114 value is needed. It provides lazy evaluation. Replacing delay 4115 with future would launch an infinite number of processes. 4116 } 4117 } 4118 4119 @techreport{Bretthauer89, 4120 keywords = {multiple inheritance}, 4121 contributer = {pabuhr@plg}, 4122 author = {Harry Bretthauer and Thomas Christaller and J\"{u}rgen Kopp}, 4123 title = {Multiple vs. Single Inheritance in Object-oriented Programming Languages. What do we really want?}, 4124 institution = {Gesellschaft F\"{u}r Mathematik und Datenverarbeitung mbH}, 4125 address = {Schlo$\beta$ Birlinghoven, Postfach 12 40, D-5205 Sankt Augustin 1, Deutschland}, 4126 number = {Arbeitspapiere der GMD 415}, 4127 month = nov, 4128 year = 1989, 4129 } 4130 4131 @inproceedings{c++:multinh, 4132 keywords = {C++, multiple inheritance, implementation}, 4133 contributer = {gjditchfield@plg}, 4134 author = {Bjarne Stroustrup}, 4135 title = {Multiple Inheritance for {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4136 booktitle = {Proceedings of the Spring '87 EUUG Conference}, 4137 month = may, year = 1987 4138 } 4139 4140 @inproceedings{st:mult, 4141 keywords = {smalltalk, multiple inheritance, implementation}, 4142 contributer = {gjditchfield@plg}, 4143 author = {Daniel H. H. Ingalls and A. H. Borning}, 4144 title = {Multiple Inheritance in Smalltalk-80}, 4145 booktitle = {Proceedings of the National Conference on Artificial Intelligence}, 4146 month = aug, 4147 year = 1982, 4148 pages = {234-238}, 4149 organization= {American Association for Artificial Intelligence}, 4150 comment = { 4151 Methods are looked up in the current class, the superclasses, the 4152 supersuperclasses, etc. The same method can be inherited 4153 repeatedly, but having different methods for the same message is an 4154 error. Only one copy is made for multiply-inherited fields. 4155 4156 {\tt X.m} is the method m in superclass X. {\tt super.m} is 4157 allowed if there is no ambiguity; {\tt self super.m} replaces {\tt 4158 super m}. {\tt all.m} invokes all inherited versions of m. 4159 4160 Methods on the first-superclass chain are found as usual. Methods 4161 from other superclasses are copied into the class dictionary. An 4162 error method is created if inherited methods conflict. The parser 4163 is changed to allow compound selectors. {\tt Object 4164 messageNotUnderstood} is changed to look for compound selectors and 4165 dynamically add a method with the right name and body to the class. 4166 When methods are edited, they are copied into subclasses and 4167 compound selector versions are deleted, as appropriate. 4168 } 4169 } 4170 4171 @article{Lamport86I, 4172 keywords = {software solutions, N-thread, mutual exclusions}, 4173 contributer = {pabuhr@plg}, 4174 author = {Leslie Lamport}, 4175 title = {The Mutual Exclusion Problem: Part\,{I}--A Theory of Interprocess Communication}, 4176 journal = jacm, 4177 volume = 33, 4178 number = 2, 4179 month = apr, 4180 year = 1986, 4181 pages = {313--326}, 4182 numpages = {14}, 4183 publisher = {ACM}, 4184 address = {New York, NY, USA}, 4185 } 4186 4187 @article{Lamport86II, 4188 keywords = {software solutions, N-thread, mutual exclusions}, 4189 contributer = {pabuhr@plg}, 4190 author = {Leslie Lamport}, 4191 title = {The Mutual Exclusion Problem: Part\,{II}--Statement and Solutions}, 4192 journal = jacm, 4193 volume = 33, 4194 number = 2, 4195 month = apr, 4196 year = 1986, 4197 pages = {327--348}, 4198 numpages = {22}, 4199 publisher = {ACM}, 4200 address = {New York, NY, USA}, 4201 } 4202 4203 @article{Burns78, 4204 keywords = {hardware, N-process solution, O(N)}, 4205 contributer = {pabuhr@plg}, 4206 author = {James E. Burns}, 4207 title = {Mutual Exclusion with Linear Waiting Using Binary Shared Variables}, 4208 journal = {SIGACT News}, 4209 volume = 10, 4210 number = 2, 4211 month = {Summer}, 4212 year = 1978, 4213 pages = {42-47}, 4214 } 4215 4216 @inproceedings{Burns80, 4217 keywords = {N-process software solution}, 4218 contributer = {pabuhr@plg}, 4219 author = {James E. Burns and Nancy A. Lynch}, 4220 title = {Mutual Exclusion using Indivisible Reads and Writes}, 4221 booktitle = {Proceedings of the 18th Annual Allerton Conference on Communications, Control and Computing, Monticello, Illinois, USA}, 4222 year = 1980, 4223 pages = {833-842}, 4224 note = {\href{http://groups.csail.mit.edu/tds/papers/Lynch/allertonconf.pdf}{\textsf{http://\-groups.csail.mit.edu/\-tds/\-papers/\-Lynch/\-allertonconf.pdf}} [Accessed on March 2014]}, 4225 optnote = {\textsf{http://\-groups.csail.mit.edu/\-tds/\-papers/\-Lynch/\-allertonconf.pdf}}, 4226 } 4227 4228 @article{Peterson81, 4229 keywords = {concurrency, critical section}, 4230 contributer = {pabuhr@plg}, 4231 author = {G. L. Peterson}, 4232 title = {Myths About the Mutual Exclusion Problem}, 4233 journal = ipl, 4234 year = 1981, 4235 month = jun, 4236 volume = 12, 4237 number = 3, 4238 pages = {115-116}, 4239 } 4240 4241 % N 4242 4243 @article{Haddon77, 4244 keywords = {monitors, nested monitor calls}, 4245 contributer = {pabuhr@plg}, 4246 author = {Bruce K. Haddon}, 4247 title = {Nested Monitor Calls}, 4248 journal = osr, 4249 volume = 11, 4250 number = 4, 4251 month = oct, 4252 year = 1977, 4253 pages = {18-23}, 4254 } 4255 4256 @inproceedings{nesting, 4257 keywords = {}, 4258 contributer = {gjditchfield@plg}, 4259 author = {Lori A. Clarke and Jack C. Wilenden and Alexander L. Wolf}, 4260 title = {Nesting in {Ada} Programs is for the Birds}, 4261 booktitle = {Proceedings of the ACM-SIGPLAN Symposium on the {Ada} 4262 Programming Language}, 4263 year = 1980, 4264 month = dec, pages = {139-145}, 4265 note = {SIGPLAN Notices, v. 15, n. 11}, 4266 abstract = { 4267 Given a data abstraction construct like the Ada package and in the 4268 light of current thoughts on programming methodology, we feel that 4269 nesting is an anachronism. In this paper we propose a nest-free 4270 program style for Ada that eschews nested program units and 4271 declarations within blocks and instead heavily utilizes packages 4272 and context specifications as mechanisms for controlling 4273 visibility. We view this proposal as a first step toward the 4274 development of programming methods that exploit the novel language 4275 features available in Ada. Consideration of this proposal's 4276 ramifications for data flow, control flow, and overall program 4277 structure substantiates our contention that a tree structure is 4278 seldom a natural representation of a program and that nesting 4279 therefore generally interferes with program development and 4280 readability. 4281 } 4282 } 4283 4284 @inproceedings{Buhr88, 4285 keywords = {nested classes, persistence}, 4286 contributer = {pabuhr@plg}, 4287 author = {P. A. Buhr and C. R. Zarnke}, 4288 title = {Nesting in an Object Oriented Language is NOT for the Birds}, 4289 booktitle = {Proceedings of the European Conference on Object Oriented Programming}, 4290 publisher = {Springer-Verlag}, 4291 volume = 322, 4292 editor = {S. Gjessing and K. Nygaard}, 4293 address = {Oslo, Norway}, 4294 month = aug, 4295 year = 1988, 4296 pages = {128-145}, 4297 note = {Lecture Notes in Computer Science, Ed. by G. Goos and J. Hartmanis}, 4298 } 4299 4300 @inproceedings{Thompson90new, 4301 keywords = {Plan 9}, 4302 contributer = {pabuhr@plg}, 4303 title = {A New C Compiler}, 4304 author = {Ken Thompson}, 4305 booktitle = {Proceedings of the Summer 1990 UKUUG Conference}, 4306 year = 1990, 4307 pages = {41--51}, 4308 url = {http://doc.cat-v.org/bell_labs/new_c_compilers/new_c_compiler.pdf} 4309 } 4310 4311 @article{Trono94, 4312 author = {John A. Trono}, 4313 title = {A New Exercise in Concurrency}, 4314 journal = {SIGCSE Bulletin}, 4315 volume = {26}, 4316 number = {3}, 4317 month = sep, 4318 year = {1994}, 4319 pages = {8-10}, 4320 publisher = {ACM}, 4321 address = {New York, NY, USA}, 4322 } 4323 4324 @article{Lamport74, 4325 keywords = {concurrency, N-Process solution, O(N)}, 4326 contributer = {pabuhr@plg}, 4327 author = {Leslie Lamport}, 4328 title = {A New Solution of Dijkstra's Concurrent Programming Problem}, 4329 journal = cacm, 4330 month = aug, 4331 year = 1974, 4332 volume = 17, 4333 number = 8, 4334 pages = {453-455}, 4335 } 4336 4337 @article{landin, 4338 keywords = {}, 4339 contributer = {gjditchfield@plg}, 4340 author = {P. J. Landin}, 4341 title = {The Next 700 Programing Languages}, 4342 journal = cacm, 4343 year = 1966, 4344 volume = 9, 4345 pages = {157-164}, 4346 } 4347 4348 @article{Herlihy05, 4349 keywords = {Multiprocessors, concurrent data structures, dynamic data structures, memory management, nonblocking synchronization}, 4350 contributer = {pabuhr@plg}, 4351 author = {Maurice Herlihy and Victor Luchangco and Paul Martin and Mark Moir}, 4352 title = {Nonblocking Memory Management Support for Dynamic-sized Data Structures}, 4353 journal = tocs, 4354 volume = 23, 4355 number = 2, 4356 month = may, 4357 year = 2005, 4358 pages = {146-196}, 4359 numpages = {51}, 4360 publisher = {ACM}, 4361 address = {New York, NY, USA}, 4362 } 4363 4364 % O 4365 4366 @inproceedings{oop:abcl/1, 4367 keywords = {concurrency, OOPL, futures}, 4368 contributer = {gjditchfield@plg}, 4369 author = {Akinori Yonezawa and Jean-Pierre Briot and Etsuya Shibayama}, 4370 title = {Object-Oriented Concurrent Programming in {ABCL/1}}, 4371 crossref = "OOPSLA86", 4372 pages = {258-268}, 4373 comment = { 4374 Actions for messages sent to an object are executed concurrently 4375 iff the object has no members. A select construct specifies a set 4376 of message patterns. 4377 4378 Express messages have priority. If an express message arrives 4379 while an ordinary message is being processed, the action for the 4380 ordinary message is suspended or aborted and the action for the 4381 express message is executed. The sender decides which class a 4382 message belongs in. Non-interruptible sections can be defined. 4383 4384 Message sends can be non-blocking, or can block until a reply is 4385 received, at the sender's option. The receiver can continue to 4386 execute after sending the reply. 4387 4388 Replies can send back ``futures'', and put values in them later. 4389 Futures are queues of values, not single values. The caller can 4390 use a ``ready?'' predicate to test for empty queue, or can use 4391 operations to get the first or all queue elements; these operations 4392 block if the queue is empty. 4393 } 4394 } 4395 4396 @techreport{Schmidt95, 4397 keywords = {ACE, concurrency, library}, 4398 contributer = {pabuhr@plg}, 4399 author = {Douglas C. Schmidt}, 4400 title = {An OO Encapsulation of Lightweight OS Concurrency Mechanisms in the {ACE} Toolkit}, 4401 institution = {Washington University in St. Louis}, 4402 year = 1995, 4403 number = 31, 4404 note = {{\small\textsf{http://\-www.cs.wustl.edu/\-\char`\~schmidt/\-PDF/\-IPC\_SAP-92.pdf}}}, 4405 } 4406 4407 @inproceedings{OOEx, 4408 keywords = {Exceptions, object-oriented programming languages}, 4409 contributer = {gjditchfield@plg}, 4410 author = {Christophe Dony}, 4411 title = {An Object-oriented Exception Handling System for an Object-oriented Language}, 4412 booktitle = {ECOOP '88. European Conference on Object-Oriented Programming}, 4413 year = 1988, 4414 pages = {146-161}, 4415 editor = {S. Gjessing and K. Nygaard}, 4416 organization= {DND, The Norwegian Computer Society}, 4417 publisher = {Springer-Verlag}, 4418 comment = { 4419 Objectives: 4420 - Users can define new exceptions. 4421 - Default handlers can be attached to exceptions. 4422 - Handlers can be attached to classes. 4423 - Handlers can be attached to dynamic entities (expressions). 4424 - Exceptions propagate first along the invocation chain. 4425 - Exceptions should be hierarchically organized classes. 4426 - Handlers should take into account the exception hierarchy (i.e., 4427 should handle raising of sub-exceptions). 4428 The ``exceptional-event'' class has two subclasses. ``Warning'' 4429 has a ``resume'' method, and ``error'' has ``exit'' and 4430 ``retry'' methods. Signalling an exception creates an instance 4431 of the exception, whose members are used to pass information 4432 back to the handler. Handlers are instances of class 4433 ``protect-handler'' with a method ``protect {\em expression}'', 4434 or are methods defined for the class or the exception. 4435 } 4436 } 4437 4438 @article{CommonObjects, 4439 author = {A. Snyder}, 4440 title = {Object-Oriented Programming for Common Lisp}, 4441 address = {Palo Alto CA}, 4442 year = 1985, 4443 publisher = {Software Technology Laboratory, Hewlett-Packard Laboratories}, 4444 journal = {Report ATC-85-1}, 4445 } 4446 4447 @book{objective-c, 4448 keywords = {}, 4449 author = {Brad J. Cox}, 4450 title = {Object-oriented programming; an evolutionary approach}, 4451 publisher = {Addison-Wesley}, 4452 year = 1986 4453 } 4454 4455 @book{Beta, 4456 keywords = {Beta, object oriented, concurrency, exceptions}, 4457 contributer = {pabuhr@plg}, 4458 author = {Ole Lehrmann Madsen and Birger M{\o}ller-Pedersen and Kristen Nygaard}, 4459 title = {Object-oriented Programming in the {BETA} Programming Language}, 4460 publisher = {Addison-Wesley}, 4461 year = 1993, 4462 } 4463 4464 @article{Flavors, 4465 author = {D. A. Moon}, 4466 title = {Object-Oriented Programming with Flavors}, 4467 address = {Portland OR}, 4468 month = sep, 4469 year = 1986, 4470 journal = {Proc. ACM Conf. on Object-Oriented Systems, Languages and Applications}, 4471 } 4472 4473 @article{Buhr00b, 4474 keywords = {concurrency, C++, real-time}, 4475 contributer = {pabuhr@plg}, 4476 author = {Peter A. Buhr and Ashif S. Harji and Philipp E. Lim and Jiongxiong Chen}, 4477 title = {Object-Oriented Real-Time Concurrency}, 4478 journal = sigplan, 4479 volume = 35, 4480 number = 10, 4481 month = oct, 4482 year = 2000, 4483 pages = {29-46}, 4484 note = {OOPSLA'00, Oct. 15--19, 2000, Minneapolis, Minnesota, U.S.A.}, 4485 } 4486 4487 @book{Meyer88, 4488 keywords = {Eiffel}, 4489 contributer = {pabuhr@plg}, 4490 author = {Bertrand Meyer}, 4491 title = {Object-oriented Software Construction}, 4492 publisher = {Prentice Hall}, 4493 year = {1988}, 4494 series = {Prentice Hall International Series in Computer Science}, 4495 } 4496 4497 @article{objectPascal, 4498 keywords = {objects, modules}, 4499 contributer = {gjditchfield@plg}, 4500 author = {Larry Tesler}, 4501 title = {Object Pascal Report}, 4502 journal = {Structured Language World}, 4503 year = 1985, 4504 volume = 9, 4505 number = 3, 4506 } 4507 4508 @misc{obj-c:next, 4509 keywords = {categories, protocols, Objective C}, 4510 contributor = {gjditchfield@angus}, 4511 author = {NeXT Computer, Inc.}, 4512 title = {Objective C Extensions}, 4513 howpublished= {On-line documentation in ``NEXTSTEP 3.1 Developer''}, 4514 year = 1993 4515 } 4516 4517 @book{Galletly96, 4518 keywords = {occam}, 4519 author = {John Galletly}, 4520 title = {{OCCAM} 2: Including {OCCAM} 2.1}, 4521 publisher = {{UCL} (University College London) Press Ltd.}, 4522 edition = {second}, 4523 year = 1996, 4524 } 4525 4526 @techreport{Morrison88, 4527 keywords = {objects, concurrency, persistence}, 4528 contributer = {pabuhr@plg}, 4529 author = {R. Morrison and A. L. Brown and R. Carrick and R. Connor and A. Dearle}, 4530 title = {On the integration of Object-Oriented and Process-Oriented computation in persistent environments}, 4531 institution = {Department of Computational Science, University of St. Andrews, Scotland}, 4532 number = {PPRR 57}, 4533 month = jan, 4534 year = 1988, 4535 } 4536 4537 @article{Peterson73, 4538 keywords = {goto, structured programming}, 4539 contributer = {pabuhr@plg}, 4540 author = {W. W. Peterson and T. Kasami and N. Tokura}, 4541 title = {On the Capabilities of While, Repeat, and Exit Statements}, 4542 journal = cacm, 4543 month = aug, 4544 year = 1973, 4545 volume = 16, 4546 number = 8, 4547 pages = {503-512} 4548 } 4549 4550 @article{Baker82, 4551 keywords = {compilation}, 4552 contributer = {gjditchfield@plg}, 4553 author = {Theodore P. Baker}, 4554 title = {A One-Pass Algorithm for Overload Resolution in {Ada}}, 4555 journal = toplas, 4556 year = 1982, 4557 month = oct, 4558 volume = 4, 4559 number = 4, 4560 pages = {601-614}, 4561 abstract = { 4562 A simple method is presented for detecting ambiguities and finding 4563 the correct interpretations of expressions in the programming 4564 language Ada. Unlike previously reported solutions to this 4565 problem, which require multiple passes over a tree structure, the 4566 method described here operates in one bottom-up pass, during which 4567 a directed acyclic graph is produced. The correctness of this 4568 approach is demonstrated by a brief formal argument. 4569 }, 4570 comment = { 4571 See also \cite{D:overload}. 4572 } 4573 } 4574 4575 @techreport{OpenMP, 4576 keywords = {concurrency, openmp, spmd}, 4577 contributer = {pabuhr@plg}, 4578 author = {OpenMP Architecture Review Board}, 4579 title = {OpenMP Application Program Interface, Version 4.0}, 4580 month = jul, 4581 year = 2013, 4582 note = {\href{http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf}{\textsf{http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf}}}, 4583 } 4584 4585 @book{Deitel04, 4586 keywords = {concurrency, operating systems}, 4587 contributer = {pabuhr@plg}, 4588 author = {Harvey M. Deitel and Paul J. Deitel and David R. Choffnes}, 4589 title = {Operating Systems}, 4590 publisher = {Pearson Prentice-Hall}, 4591 year = 2004, 4592 edition = {third}, 4593 } 4594 4595 @book{Stalling98, 4596 keywords = {concurrency, operating systems}, 4597 contributer = {pabuhr@plg}, 4598 author = {William Stallings}, 4599 title = {Operating Systems: Internals and Design Principles}, 4600 publisher = {Prentice-Hall}, 4601 year = 1998, 4602 edition = {third}, 4603 } 4604 4605 @book{Stalling01, 4606 keywords = {concurrency, operating systems}, 4607 contributer = {pabuhr@plg}, 4608 author = {William Stallings}, 4609 title = {Operating Systems: Internals and Design Principles}, 4610 publisher = {Prentice-Hall}, 4611 year = 2001, 4612 edition = {fourth}, 4613 } 4614 4615 @book{Silberschatz91, 4616 keywords = {concurrency, operating systems}, 4617 contributer = {pabuhr@plg}, 4618 author = {Abraham Silberschatz and James L. Peterson and Peter Galvin}, 4619 title = {Operating System Concepts}, 4620 publisher = {Addision-Wesley}, 4621 year = 1991, 4622 edition = {third}, 4623 } 4624 4625 @book{Tanenbaum87, 4626 keywords = {concurrency, operating systems}, 4627 contributer = {pabuhr@plg}, 4628 author = {Andrew S. Tanenbaum}, 4629 title = {Operating Systems : Design and Implementation}, 4630 publisher = {Prentice-Hall}, 4631 series = {Software Series}, 4632 year = 1987, 4633 } 4634 4635 @book{Hansen73, 4636 keywords = {monitors}, 4637 contributer = {pabuhr@plg}, 4638 author = {Per {Brinch Hansen}}, 4639 title = {Operating System Principles}, 4640 publisher = {Prentice-Hall}, 4641 year = 1973, 4642 } 4643 4644 @book{Bic03, 4645 keywords = {concurrency, operating systems}, 4646 contributer = {pabuhr@plg}, 4647 author = {Lubomir F. Bic and Alan C. Shaw}, 4648 title = {Operating System Principles}, 4649 publisher = {Prentice-Hall}, 4650 year = 2003, 4651 } 4652 4653 @techreport{milner88, 4654 keywords = {}, 4655 contributer = {gjditchfield@plg}, 4656 author = {Robin Milner}, 4657 title = {Operational and Algebraic Semantics of Concurrent Processes}, 4658 institution = {Laboratory for Foundations of Computer Science}, 4659 year = 1988, 4660 address = {Department of Computer Science, University of Edinburgh, Edinburgh EH9 3JZ}, 4661 month = feb, 4662 number = {ECS-LFCS-88-46} 4663 } 4664 4665 @article{Ford82, 4666 keywords = {}, 4667 contributer = {pabuhr@plg}, 4668 author = {G. Ford and B. Hansche}, 4669 title = {Optional, Repeatable, and Varying Type Parameters}, 4670 journal = sigplan, 4671 volume = 17, 4672 number = 2, 4673 month = feb, 4674 year = 1982, 4675 pages = {41-48}, 4676 } 4677 4678 @manual{pli, 4679 keywords = {PL/I}, 4680 contributer = {gjditchfield@plg}, 4681 key = {IBM}, 4682 title = {{OS} and {DOS} {PL/I} Reference Manual}, 4683 organization= {International Business Machines}, 4684 edition = {first}, 4685 month = sep, 4686 year = 1981, 4687 note = {Manual GC26-3977-0}, 4688 } 4689 4690 @techreport{D:overload, 4691 keywords = {overload resolution, compilation}, 4692 contributer = {gjditchfield@plg}, 4693 author = {M. Dausmann et. al.}, 4694 title = {Overloading in {Ada}}, 4695 institution = {Universitat Karlsruhe}, 4696 year = 1979, 4697 number = {23/79}, 4698 comment = { 4699 Probably the earliest description of the two-pass (bottom-up, 4700 top-down) overload resolution algorithm. See also 4701 \cite{PW:overload,WS:overload,PDM:overload,Cor:overload,Bak:overload}. 4702 } 4703 } 4704 4705 @article{EB87, 4706 keywords = {packages, private types, assignment, equality}, 4707 contributer = {gjditchfield@plg}, 4708 author = {J. Dana Eckart and Richard J. LeBlanc}, 4709 title = {Overloading in the {Ada} Language: Is it too restrictive?}, 4710 journal = {Computer Languages}, 4711 year = 1987, 4712 volume = 12, number = {3/4}, pages = {163-172}, 4713 abstract = { 4714 Packages in the Ada language provide a mechanism for extending the 4715 language through the development of additional data types. Such 4716 types can be better integrated into the language using operator 4717 overloading; however, key limitations prevent new types from being 4718 transparently integrated into the language. Allowing function 4719 names to overload private type names would give a cleaner and 4720 clearer mechanism for building values of these types. Furthermore, 4721 by allowing redefinitions of ``:='' and by making it easier to 4722 overload ``='' for private types, Ada coud be transformed into a 4723 more expressive language. 4724 } 4725 } 4726 4727 @article{PW:overload, 4728 keywords = {compilation}, 4729 contributer = {gjditchfield@plg}, 4730 author = {Guido Persch and Georg Winterstein and Manfred Dausman and Sophia Drossopoulou}, 4731 title = {Overloading in Preliminary {Ada}}, 4732 journal = sigplan, 4733 year = 1980, 4734 month = nov, volume = 15, number = 11, pages = {47-56}, 4735 note = {Proceedings of the ACM-SIGPLAN Symposium on the {Ada} Programming 4736 Language}, 4737 comment = { 4738 The two-pass (bottom-up, then top-down) algorithm, with a proof 4739 that two passes suffice. See also \cite{D:overload}. 4740 } 4741 } 4742 4743 @article{SR, 4744 keywords = {concurrency, messages, rendezvous}, 4745 contributer = {pabuhr@plg}, 4746 author = {Gregory R. Andrews and Ronald A. Olsson and Michael Coffin and 4747 Irving Elshoff and Kelvin Nilsen and Titus Purdin and Gregg Townsend}, 4748 title = {An Overview of the {SR} Language and Implementation}, 4749 journal = toplas, 4750 month = jan, 4751 year = 1988, 4752 volume = 10, 4753 number = 1, 4754 pages = {51-86}, 4755 } 4756 4757 % P 4758 4759 @article{Andrews91, 4760 keywords = {general concurrency}, 4761 contributer = {pabuhr@plg}, 4762 author = {Gregory R. Andrews}, 4763 title = {Paradigms for Process Interaction in Distributed Programs}, 4764 journal = acmcs, 4765 volume = 23, 4766 number = 1, 4767 month = mar, 4768 year = 1991, 4769 pages = {49-90}, 4770 } 4771 4772 @book{PPC++, 4773 keywords = {concurrency, parallel, distributed, C++}, 4774 contributer = {pabuhr@plg}, 4775 editor = {Gregory V. Wilson and Paul Lu}, 4776 title = {Parallel Programming in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4777 publisher = {MIT Press}, 4778 series = {Scientific and Engineering Computation Series}, 4779 year = 1996, 4780 pages = {1-42}, 4781 } 4782 4783 @incollection{Stroustrup96, 4784 keywords = {concurrency, C++}, 4785 contributer = {pabuhr@plg}, 4786 author = {Bjarne Stroustrup}, 4787 title = {A Perspective on Concurrency in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4788 editor = {Gregory V. Wilson and Paul Lu}, 4789 booktitle = {Parallel Programming in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4790 publisher = {MIT Press}, 4791 series = {Scientific and Engineering Computation Series}, 4792 year = 1996, 4793 pages = {xxvi-xxvii}, 4794 } 4795 4796 @incollection{Yang96b, 4797 keywords = {concurrency, C++}, 4798 contributer = {pabuhr@plg}, 4799 author = {Shelby X. Yang and Dennis Gannon and Peter Beckman and Jacob Gotwals and Neelakantan Sundaresan}, 4800 editor = {Gregory V. Wilson and Paul Lu}, 4801 title = {p{C}++}, 4802 booktitle = {Parallel Programming in {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4803 publisher = {MIT Press}, 4804 address = {Cambridge, MA, USA}, 4805 series = {Scientific and Engineering Computation Series}, 4806 pages = {507-546}, 4807 year = 1996, 4808 } 4809 4810 @article{goguen84, 4811 keywords = {}, 4812 contributer = {gjditchfield@plg}, 4813 author = {Goseph A. Goguen}, 4814 title = {Parameterized Programming}, 4815 journal = ieeese, 4816 year = 1984, 4817 month = sep, volume = "SE-10", number = 5, pages = {528-543}, 4818 abstract = { 4819 Parameterized programming is a powerful technique for the reliable 4820 reuse of software. In this technique, modules are parameterized 4821 over very general interfaces that describe what properties of an 4822 environment are required for the module to work correctly. 4823 Reusability is enhanced by the flexibility of the parameterization 4824 mechanism proposed here. Reliability is further enhanced by 4825 permitting interface requirements to include more than purely 4826 syntactic information. This paper introduces three new ideas that 4827 seem especially useful in supporting parameterized programming: 1) 4828 {\em theories}, which declare global properties of program modules 4829 and interfaces; 2) {\em views}, which connect theories with program 4830 modules in an elegant way; and 3) {\em module expressions}, a kind 4831 of general structured program transformation which produces new 4832 modules by modifying and combining existing modules. Although 4833 these ideas are illustrated with some simple examples in the OBJ 4834 programming language, they should also be taken as proposals for an 4835 Ada library system, for adding modules to Prolog, and as 4836 considerations for future language design efforts. OBJ is an 4837 ultra-high level programming language, based upon rewrite rules, 4838 that incorporates these ideas, and many others from modern 4839 programming methodology. 4840 } 4841 } 4842 4843 @inproceedings{c++:templates, 4844 author = {Bjarne Stroustrup}, 4845 contributer = {gjditchfield@plg}, 4846 title = {Parameterized Types for {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 4847 booktitle = {USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Conference}, 4848 organization= {USENIX Association}, 4849 year = 1988, pages = {1-18} 4850 } 4851 4852 @inproceedings{Boehm85, 4853 keywords = {second-order unification}, 4854 contributer = {gjditchfield@plg}, 4855 author = {Hans-J. Boehm}, 4856 title = {Partial Polymorphic Type Inference is Undecidable}, 4857 booktitle = {26th Annual Symposium on Foundations of Computer Science}, 4858 year = 1985, 4859 pages = {339-345}, 4860 organization= {IEEE Computer Society}, 4861 publisher = {IEEE Computer Society Press}, 4862 address = {1730 Massachusetts Avenue, N.W, Washington, D.C. 20036-1903}, 4863 summary = { 4864 Given a base typed lambda calculus with function types, type 4865 abstractions, and a recursive expression \(\mbox{fix } x:t.e\), 4866 then type inference for the partially typed language 4867 \begin{eqnarray} 4868 \lambda x:\tau.e &\Rightarrow& \lambda x.e \\ 4869 \mbox{fix } x:\tau.e &\Rightarrow& \mbox{fix } x.e \\ 4870 e \tau &\Rightarrow& e ? 4871 \end{eqnarray} 4872 is undecidable. 4873 } 4874 } 4875 4876 @book{Pascal, 4877 keywords = {Pascal}, 4878 contributer = {pabuhr@plg}, 4879 author = {Kathleen Jensen and Niklaus Wirth}, 4880 title = {{P}ascal User Manual and Report}, 4881 publisher = {Springer--Verlag}, 4882 year = 1985, 4883 edition = {third}, 4884 note = {Revised by Andrew B. Mickel and James F. Miner, ISO Pascal Standard} 4885 } 4886 4887 @book{Pascal:old, 4888 keywords = {Pascal}, 4889 contributer = {pabuhr@plg}, 4890 author = {Kathleen Jensen and Niklaus Wirth}, 4891 title = {{P}ascal User Manual and Report}, 4892 publisher = {Springer--Verlag}, 4893 year = 1975, 4894 edition = {first}, 4895 } 4896 4897 @article{Turba85, 4898 keywords = {Pascal, exception handling, inheritance}, 4899 contributer = {pabuhr@plg}, 4900 author = {Thomas N. Turba}, 4901 title = {The {P}ascal Exception Handling Proposal}, 4902 journal = sigplan, 4903 volume = 20, 4904 number = 8, 4905 month = aug, 4906 year = 1985, 4907 pages = {93-98}, 4908 } 4909 4910 @manual{Pascal/VS, 4911 keywords = {PL/I}, 4912 contributer = {pabuhr@plg}, 4913 key = {IBM}, 4914 title = {{P}ascal/{VS} Language Reference Manual}, 4915 organization= {International Business Machines}, 4916 edition = {first}, 4917 year = 1981, 4918 note = {Manual SH20-6168-1}, 4919 } 4920 4921 @article{Anderson90, 4922 keywords = {spin locks, back off, performance}, 4923 contributer = {pabuhr@plg}, 4924 author = {Thomas E. Anderson}, 4925 title = {The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors}, 4926 journal = ieeepds, 4927 month = jan, 4928 year = 1990, 4929 volume = 1, 4930 number = 1, 4931 pages = {6-16}, 4932 } 4933 4934 @article{poly, 4935 keywords = {Poly, Standard ML, Russell, persistence}, 4936 contributer = {gjditchfield@plg}, 4937 author = {David C. J. Matthews}, 4938 title = {Poly Manual}, 4939 journal = sigplan, 4940 month = sep, year = 1985, 4941 volume = 20, number = 9, pages = {52-76} 4942 } 4943 4944 @techreport{Atkinson87b, 4945 keywords = {naming, persistence}, 4946 contributer = {pabuhr@plg}, 4947 author = {M. P. Atkinson and R. Morrison}, 4948 title = {Polymorphic Names and Iterations}, 4949 institution = {Universities of Glasgow and St. Andrews, Scotland}, 4950 number = {PPRR-53-87}, 4951 month = nov, 4952 year = 1987, 4953 } 4954 4955 @book{Harland, 4956 keywords = {}, 4957 author = {David M. Harland}, 4958 title = {Polymorphic Programming Languages: Design and Implementation}, 4959 publisher = {Ellis Horwood}, 4960 year = 1984, 4961 series = {Computers and their Applications}, 4962 address = {Market Cross House, Cooper Street, Chichester, West Sussex, 4963 PO19 1EB, England}, 4964 summary = { 4965 The principles of Procedural Abstraction, Data Type Completeness, 4966 Declaration Correspondence, and Orthogonality are ruthlessly applied 4967 to the design of a polymorphic language. 4968 } 4969 } 4970 4971 @unpublished{poa, 4972 keywords = {Force N, type inference, reusability, transcendance}, 4973 contributer = {gjditchfield@plg}, 4974 author = {G. V. Cormack and A. K. Wright}, 4975 title = {Polymorphism, Overloading, and Abstraction}, 4976 note = {personal communication} 4977 } 4978 4979 @inproceedings{forceone:impl, 4980 keywords = {Parametric polymorphism, ForceOne}, 4981 contributer = {gjditchfield@plg}, 4982 author = {G. V. Cormack and A. K. Wright}, 4983 title = {Polymorphism in the Compiled Language {ForceOne}}, 4984 booktitle = {Proceedings of the 20th Hawaii International Conference on Systems Sciences}, 4985 month = jan, 4986 year = 1987, 4987 pages = {284-292}, 4988 } 4989 4990 @incollection{POOL-T, 4991 keywords = {objects, concurrency}, 4992 contributer = {pabuhr@plg}, 4993 author = {Pierre America}, 4994 title = {POOL-T: A Parallel Object-Oriented Language}, 4995 booktitle = {Object-Oriented Concurrent Programming}, 4996 publisher = {The MIT Press}, 4997 year = 1987, 4998 pages = {199-220}, 4999 editor = {Akinori Yonezawa and Mario Tokoro} 5000 } 5001 5002 @article{Hardgrave76, 5003 keywords = {positional, keyword, parameters, arguments}, 5004 contributer = {pabuhr@plg}, 5005 author = {W. T. Hardgrave}, 5006 title = {Positional versus Keyword Parameter Communication in Programming Languages}, 5007 journal = sigplan, 5008 volume = 11, 5009 number = 5, 5010 month = may, 5011 year = 1976, 5012 pages = {52-58}, 5013 } 5014 5015 @book{PowerPC, 5016 key = {PowerPC processor}, 5017 title = {Programming Environments Manual for 32-Bit Implementations of the PowerPC ArchitectureARM Architecture}, 5018 publisher = {Freescale Semiconductor}, 5019 volume = {MPCFPE32B}, 5020 edition = {Rev. 3}, 5021 month = 9, 5022 year = 2005, 5023 } 5024 5025 @article{Ada:preliminary, 5026 keywords = {Ada}, 5027 contributer = {pabuhr@plg}, 5028 author = {Jean D. Ichbiah and Bernd Krieg-Brueckner and Brian A. Wichmann 5029 and Henry F. Ledgard and Jean-Claude Heliard and Jean-Raymond Abrial 5030 and John G. P. Barnes and Olivier Roubine}, 5031 title = {Preliminary {Ada} Reference Manual}, 5032 journal = sigplan, 5033 volume = 14, 5034 number = 6, 5035 month = jun, 5036 year = 1979, 5037 note = {Part A}, 5038 } 5039 5040 @techreport{Forsythe, 5041 author = {John C. Reynolds}, 5042 title = {Preliminary Design of the Programming Language {Forsythe}}, 5043 institution = {Carnegie Mellon University}, 5044 number = {CMU-CS-88-159}, 5045 month = jun, 5046 year = 1988, 5047 } 5048 5049 @article{PRESTO, 5050 keywords = {concurrency, threads}, 5051 contributer = {dgharriss@plg}, 5052 author = {B. N. Bershad and E. D. Lazowska and H. M. Levy}, 5053 title = {{PRESTO}: A System for Object-oriented Parallel Programming}, 5054 journal = spe, 5055 volume = 18, 5056 number = 8, 5057 month = aug, 5058 year = 1988, 5059 pages = {713-732} 5060 } 5061 5062 @book{Ben-Ari82, 5063 keywords = {concurrency, parallel, programming languages}, 5064 contributer = {pabuhr@plg}, 5065 author = {Mordechai Ben-Ari}, 5066 title = {Principles of Concurrent Programming}, 5067 publisher = {Prentice-Hall International}, 5068 year = 1982, 5069 } 5070 5071 @book{Tennent81, 5072 author = {R. D. Tennent}, 5073 title = {Principles of Programming Languages}, 5074 publisher = {Prentice-Hall International}, 5075 year = 1981, 5076 series = {Series in Computer Science} 5077 } 5078 5079 @article{Lister77, 5080 keywords = {monitors, nested monitor calls}, 5081 contributer = {pabuhr@plg}, 5082 author = {Andrew Lister}, 5083 title = {The Problem of Nested Monitor Calls}, 5084 journal = osr, 5085 volume = 11, 5086 number = 3, 5087 month = jul, 5088 year = 1977, 5089 pages = {5-7}, 5090 } 5091 5092 @article{psa:persistence, 5093 keywords = {persistence, first-class procedures, closure, PS-Algol, 5094 Abstract Data Types}, 5095 contributer = {gjditchfield@plg}, 5096 author = {Malcolm P. Atkinson and Ronald Morrison}, 5097 title = {Procedures as Persistent Data Objects}, 5098 journal = toplas, 5099 volume = {7}, number = {4}, 5100 pages = {539-559}, 5101 month = oct, year = 1985, 5102 comment = { 5103 PS-Algol has ``structures'', accessible only through ``pntrs''. 5104 Pntrs can refer to any type of structure. Field references involve 5105 a run-time check. This, plus first-class procedures, can simulate 5106 abstract data types. Procedure variables operating on pntrs 5107 simulate ADT operations. A block defines a structure to implement 5108 the ADT, and assigns procedures to the variables. Functions 5109 returning structures containing procedures simulate multiple 5110 implementations and parameterized ADTs. 5111 5112 An outer procedure that returns a procedure that contains 5113 (non-local) references to the outer procedure's parameters 5114 implements partial evaluation. 5115 5116 Modules can be simulated like ADT's. The module itself is a 5117 structure instance that is placed in persistent storage, and the 5118 module is imported by fetching it from the persistent store. 5119 Multiple instances of modules are easy. Installation of new 5120 versions can be done by replacing the version in the database. 5121 } 5122 } 5123 5124 @article{Procol89, 5125 keywords = {active objects, object-oriented languages, 5126 object-based languages, explicit per-object protocol}, 5127 contributer = {akgoel@plg}, 5128 author = {Jan van den Bos and Chris Laffra}, 5129 title = {PROCOL: A Parallel Object Language with Protocols}, 5130 journal = sigplan, 5131 volume = 24, 5132 number = 10, 5133 month = oct, 5134 year = 1989, 5135 pages = {95-102}, 5136 note = {Proceedings of the OOPSLA'89 Conference, Oct. 1--6, 1989, New Orleans, Lousiana}, 5137 abstract = {}, 5138 } 5139 5140 @book{Butenhof97, 5141 keywords = {PThreads, concurrency}, 5142 contributer = {pabuhr@plg}, 5143 author = {David R. Butenhof}, 5144 title = {Programming with {POSIX} Threads}, 5145 publisher = {Addison-Wesley}, 5146 series = {Professional Computing}, 5147 year = 1997, 5148 } 5149 5150 @book{SETL, 5151 keywords = {SETL}, 5152 contributer = {pabuhr@plg}, 5153 author = {J. T. Schwartz and R. B. K. Dewar and E. Dubinsky and E. Schonberg}, 5154 title = {Programming with Sets: An Introduction to {SETL}}, 5155 publisher = {Springer-Verlag}, 5156 year = 1986, 5157 } 5158 5159 @book{Genuys68, 5160 keywords = {contains Dijkstra's Cooperating Sequential Processes}, 5161 contributer = {pabuhr@plg}, 5162 editor = {F. Genuys}, 5163 title = {Programming Languages}, 5164 publisher = {Academic Press}, 5165 address = {London, New York}, 5166 year = 1968, 5167 note = {NATO Advanced Study Institute, Villard-de-Lans, 1966} 5168 } 5169 5170 @manual{ANSI99:C, 5171 keywords = {ANSI C 99}, 5172 contributer = {pabuhr@plg}, 5173 title = {Programming Languages -- {C}}, 5174 organization= {International Standard ISO/IEC 9899:1999 (E)}, 5175 publisher = {American National Standards Institute}, 5176 address = {www.ansi.org}, 5177 year = 1999, 5178 } 5179 5180 @manual{ANSI98:C++, 5181 keywords = {ANSI C++ 98}, 5182 contributer = {pabuhr@plg}, 5183 key = {C++98}, 5184 title = {Programming Languages -- {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 5185 organization= {International Standard ISO/IEC 14882:1998 (E)}, 5186 publisher = {American National Standards Institute}, 5187 address = {www.ansi.org}, 5188 year = 1998, 5189 } 5190 5191 @manual{ANSI14:C++, 5192 keywords = {ISO/IEC C++ 14}, 5193 contributer = {pabuhr@plg}, 5194 key = {C++14}, 5195 title = {Programming Languages -- {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 5196 edition = {fourth}, 5197 organization= {International Standard ISO/IEC 14882:2014 (E)}, 5198 publisher = {International Standard Organization}, 5199 address = {http://www.iso.org}, 5200 year = 2014, 5201 } 5202 5203 @manual{MS:VisualC++, 5204 keywords = {Microsoft Visual C++}, 5205 contributer = {pabuhr@plg}, 5206 title = {Microsoft Visual {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} .NET Language Reference}, 5207 organization= {Microsoft Corporation}, 5208 year = 2002, 5209 note = {Microsoft Press, Redmond, Washington, U.S.A.}, 5210 } 5211 5212 @article{HasselBring00, 5213 keywords = {concurrency, prototyping}, 5214 contributer = {pabuhr@plg}, 5215 author = {Wilhelm Hasselbring}, 5216 title = {Programming Languages and Systems for Prototyping Concurrent Applications}, 5217 journal = acmcs, 5218 volume = 32, 5219 number = 1, 5220 month = mar, 5221 year = 2000, 5222 pages = {43-79}, 5223 } 5224 5225 @article{LLgen, 5226 keywords = {ll(1), parser generator, separate compilation}, 5227 contributer = {gjditchfield@plg}, 5228 author = {Dick Grune and Ceriel J. J. Jacobs}, 5229 title = {A Programmer-friendly LL(1) Parser Generator}, 5230 journal = spe, 5231 month = jan, year = 1988, 5232 volume = 18, number = 1, pages = {29-33}, 5233 comment = { 5234 LLgen generates C-language recursive-descent parsers. The input 5235 contains procedure-like rules with alternation and repetition 5236 constructs on the right, and (typed) parameters on the left. 5237 C actions are specified between items in the right side. 5238 Alternation and repetition (reduce and shift) conflicts can be 5239 resolved statically or at run time. 5240 5241 A grammar can be specified in several files. All files must be 5242 submitted to LLgen at once, but if the C file generated is no 5243 different from the old version, then the old version is not 5244 replaced and hence need not be recompiled, which saves lots of 5245 time. 5246 5247 When an incorrect token is found, the automatic error recovery 5248 algorithm discards tokens until an ``acceptable'' token is found; 5249 if the acceptable token is not correct, a correct one is inserted. 5250 } 5251 } 5252 5253 @techreport{russell, 5254 keywords = {Russell}, 5255 contributer = {gjditchfield@plg}, 5256 author = {H. Boehm and A. Demers and J. Donahue}, 5257 title = {A Programmer's Introduction to Russell}, 5258 institution = {Rice University}, 5259 year = 1985, 5260 number = {85-16} 5261 } 5262 5263 @techreport{PDM89, 5264 keywords = {existential types, universal types}, 5265 contributer = {gjditchfield@plg}, 5266 author = {Benjamin Pierce and Scott Dietzen and Spiro Michaylov}, 5267 title = {Programming in Higher-Order Typed Lambda Calculi}, 5268 institution = {School of Computer Science, Carnegie Mellon University}, 5269 year = 1989, 5270 address = {Pittsburg, PA 15213-3890}, 5271 month = mar, number = {CMU-CS-89-111}, 5272 abstract = { 5273 This tutorial presents a hierarchy of increasingly powerful 5274 languages, beginning with Church's simply typed 5275 \(\lambda\)-calculus (\(F_1\)) and the second-order polymorphic 5276 \(\lambda\)-calculus of Girard and Reynolds, and culminating in a 5277 fragment of Girard's \(\omega\)-order polymorphic 5278 \(\lambda\)-calculus (\(F_\omega\)). Our focus throughout is on 5279 the unusual style of programming that arises in these languages, 5280 where all functions are total and the primary control construct is 5281 iteration rather than general recursion. 5282 } 5283 } 5284 5285 @book{Modula-2, 5286 keywords = {modules, coroutines}, 5287 contributer = {pabuhr}, 5288 author = {Niklaus Wirth}, 5289 title = {Programming in Modula-2}, 5290 publisher = {Springer-Verlag}, 5291 year = 1988, 5292 edition = {fourth}, 5293 series = {Texts and Monographs in Computer Science}, 5294 } 5295 5296 @manual{Ada, 5297 keywords = {Ada, packages, tasks, exceptions}, 5298 contributer = {pabuhr@plg}, 5299 title = {The Programming Language {Ada}: Reference Manual}, 5300 organization= {United States Department of Defense}, 5301 edition = {{ANSI/MIL-STD-1815A-1983}}, 5302 month = feb, 5303 year = 1983, 5304 note = {Published by Springer-Verlag} 5305 } 5306 5307 @manual{ada:old, 5308 keywords = {Ada, packages, tasks, exceptions}, 5309 contributer = {gjditchfield@plg}, 5310 title = {The Programming Language {Ada}: Reference Manual}, 5311 organization= {United States Department of Defense}, 5312 publisher = {Springer-Verlag}, 5313 year = 1981 5314 } 5315 5316 @book{Ghezzi, 5317 keywords = {}, 5318 author = {Carlo Ghezzi and Mehdi Jazayeri}, 5319 title = {Programming Language Concepts}, 5320 publisher = {Wiley}, 5321 year = 1982 5322 } 5323 5324 @article{ConcurrentPascal, 5325 keywords = {Concurrent Pascal}, 5326 contributer = {pabuhr@plg}, 5327 author = {Per {Brinch Hansen}}, 5328 title = {The Programming Language Concurrent Pascal}, 5329 journal = ieeese, 5330 volume = 2, 5331 month = jun, 5332 year = 1975, 5333 pages = {199-206} 5334 } 5335 5336 @phdthesis{Buhr85:thesis, 5337 keywords = {}, 5338 contributer = {pabuhr@plg}, 5339 author = {P. A. Buhr}, 5340 title = {A Programming System}, 5341 school = {University of Manitoba}, 5342 year = {1985} 5343 } 5344 5345 @techreport{pierce91, 5346 keywords = {typed lambda calculus}, 5347 contributer = {gjditchfield@plg}, 5348 author = {Benjamin C. Pierce}, 5349 title = {Programming with Intersection Types, Union Types, and Polymorphism}, 5350 institution = {Carnegie Mellon University}, 5351 year = 1991, 5352 month = feb, number = "CMU-CS-91-106", 5353 annote = { 5354 Discusses a typed lambda calculus with 5355 \begin{itemize} 5356 \item 5357 Intersection types \(\tau = \tau_1\wedge\tau_2\) with \(\tau \le 5358 \tau_i\) for all \(i\). 5359 \item 5360 Union types \(\tau = \tau_1\vee\tau_2\) with \(\tau_i \le \tau\), 5361 and with implicit coercions from \(tau_i\) to \(\tau\). Only 5362 operations valid for both element types can be applied to the 5363 union; there are no projections. Union types are to variant 5364 records as set union is to disjoint set union. 5365 \item 5366 Function types and universal quantification, with subtyping rules. 5367 When functions and arguments intersections, the result of 5368 application is the intersection of all valid combinations. 5369 \item 5370 Distribution rules for combinations of types. 5371 \item 5372 "Union elimination": "case \(x = e\) of \(e'\)", where \(e\) is a 5373 union, has type \(\tau\) if \(e'\) has that type with \(x\) having 5374 every element type of the union. 5375 \item 5376 "Finitary quantification": "for \(t\) in \(\tau_1,\ldots,\tau_n.e\)" 5377 typechecks \(e\) with \(t\) bound to each choice, and intersects 5378 the results. 5379 \end{itemize} 5380 5381 Examples include: type of "natural" numbers, treated as a union of 5382 "zero" and "positive" types; default parameters, faked by using an 5383 argument that is an intersection of a data type and a function 5384 taking an explicit argument. 5385 5386 Unions can be mostly faked, according to Mitchell: 5387 \[\tau_1\vee\tau_2 \equiv 5388 \forall\tau.(\tau_1\on\tau)\wedge(\tau_2\on\tau)\] 5389 } 5390 } 5391 5392 @article{promises, 5393 keywords = {futures, Argus, call streams, rpc}, 5394 contributer = {gjditchfield@plg}, 5395 author = {Barbara Liskov and Liuba Shrira}, 5396 title = {Promises: Linguistic Support for Efficient Asynchronous 5397 Procedure Calls in Distributed Systems}, 5398 journal = sigplan, 5399 year = 1988, 5400 month = jul, volume = 23, number = 7, pages = {260-267}, 5401 note = {Proceedings of the SIGPLAN '88 Conference on Programming Language 5402 Design and Implementation}, 5403 abstract = { 5404 This paper deals with the integration of an efficient asynchronous 5405 remote procedure call mechanism into a programming language. It 5406 describes a new data type called a {\em promise} that was designed 5407 to support asynchronous calls. Promises allow a caller to run in 5408 parallel with a call and to pick up the results of the call, 5409 including any exceptions it raises, in a convenient and type-safe 5410 manner. The paper also discusses efficient composition of 5411 sequences of asynchronous calls to different locations in a 5412 network. 5413 } 5414 } 5415 5416 @article{Cook89, 5417 keywords = {}, 5418 contributer = {gjditchfield@plg}, 5419 author = {W. R. Cook}, 5420 title = {A Proposal for Making {Eiffel} Type-safe}, 5421 journal = {The Computer Journal}, 5422 year = 1989, 5423 volume = 32, number = 4, pages = {305-311}, 5424 abstract = { 5425 5426 } 5427 } 5428 5429 @inproceedings{Foxall79, 5430 keywords = {}, 5431 contributer = {pabuhr@plg}, 5432 author = {D. G. Foxall and M. L. Joliat and R. F. Kamel and J. J. Miceli}, 5433 title = {{PROTEL}: A High Level Language for Telephony}, 5434 booktitle = {Proceedings 3rd International Computer Software and Applications Conference}, 5435 month = nov, 5436 year = 1979, 5437 pages = {193-197}, 5438 } 5439 5440 @techreport{PS-Algol, 5441 keywords = {algol, persistence}, 5442 contributer = {pabuhr@plg}, 5443 key = {PS-Algol}, 5444 title = {The {PS-Algol} Reference Manual, 4th Ed.}, 5445 author = {}, 5446 institution = {University of Glasgow and St. Andrews, Scotland}, 5447 number = {PPRR 12}, 5448 month = jun, 5449 year = 1987, 5450 } 5451 5452 @manual{Python, 5453 keywords = {Python}, 5454 contributer = {pabuhr}, 5455 title = {Python Reference Manual, Release 2.5}, 5456 author = {Guido van Rossum}, 5457 organization= {Python Software Foundation}, 5458 month = sep, 5459 year = 2006, 5460 note = {Fred L. Drake, Jr., editor}, 5461 } 5462 5463 % Q 5464 5465 @article{Grossman06, 5466 keywords = {Cyclone, existential types, polymorphism, type variables}, 5467 contributer = {a3moss@plg}, 5468 author = {Grossman, Dan}, 5469 title = {Quantified Types in an Imperative Language}, 5470 journal = toplas, 5471 issue_date = {May 2006}, 5472 volume = {28}, 5473 number = {3}, 5474 month = may, 5475 year = {2006}, 5476 issn = {0164-0925}, 5477 pages = {429--475}, 5478 numpages = {47}, 5479 url = {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/1133651.1133653}, 5480 doi = {10.1145/1133651.1133653}, 5481 acmid = {1133653}, 5482 publisher = {ACM}, 5483 address = {New York, NY, USA}, 5484 } 5485 5486 @article{Hoare61, 5487 keywords = {quick sort}, 5488 contributer = {pabuhr@plg}, 5489 author = {C. A. R. Hoare}, 5490 title = {Algorithms 63/64: Partition/Quicksort}, 5491 journal = cacm, 5492 volume = 4, 5493 number = 7, 5494 month = jul, 5495 year = 1961, 5496 pages = {321}, 5497 } 5498 5499 % R 5500 5501 @article{Ada:rationale:preliminary, 5502 keywords = {Ada}, 5503 contributer = {pabuhr@plg}, 5504 author = {J. D. Ichbiah and J. C. Heliard and O. Roubine and 5505 J. G. P. Barnes and B. Krieg-Brueckner and B. A. Wichmann}, 5506 title = {Rationale for the Design of the {ADA} Programming Language}, 5507 journal = sigplan, 5508 volume = 14, 5509 number = 6, 5510 month = jun, 5511 year = 1979, 5512 note = {Part B}, 5513 } 5514 5515 @book{Ada:rationale, 5516 keywords = {Ada}, 5517 contributer = {pabuhr@plg}, 5518 author = {Jean D. Ichbiah and John G. P. Barnes and Robert J. Firth and Mike Woodger}, 5519 title = {Rationale for the Design of the {ADA} Programming Language}, 5520 publisher = {Under Secretary of Defense, Research and Engineering}, 5521 year = 1986, 5522 address = {Ada Joint Program Office, OUSDRE(R\&AT), The Pentagon, Washington, D. C., 20301, U.S.A.}, 5523 } 5524 5525 @manual{Ada95, 5526 keywords = {Ada}, 5527 contributer = {pabuhr@plg}, 5528 title = {{A}da Reference Manual}, 5529 edition = {International Standard {ISO}/{IEC} {8652:1995(E)} with {COR.1:2000}}, 5530 organization = {Intermetrics, Inc.}, 5531 month = dec, 5532 year = 1995, 5533 note = {Language and Standards Libraries} 5534 } 5535 5536 @manual{Ada12, 5537 keywords = {Ada}, 5538 contributer = {pabuhr@plg}, 5539 title = {Programming languages -- {Ada}}, 5540 edition = {third}, 5541 organization= {International Standard ISO/IEC 1989:2014}, 5542 publisher = {International Standard Organization}, 5543 address = {http://www.iso.org}, 5544 year = 2012, 5545 } 5546 5547 @manual{Ada95:annotated, 5548 keywords = {Ada}, 5549 contributer = {pabuhr@plg}, 5550 title = {Annotated {A}da Reference Manual}, 5551 edition = {International Standard {ISO}/{IEC} {8652:1995(E)} with {COR.1:2000}}, 5552 organization = {Intermetrics, Inc.}, 5553 month = dec, 5554 year = 1995, 5555 note = {Language and Standards Libraries} 5556 } 5557 5558 @book{JavaRT00, 5559 keywords = {real time, draft}, 5560 contributer = {pabuhr@plg}, 5561 author = {Greg Bollella and Ben Brosgol and Peter Dibble and Steve Furr and James Gosling and David Hardin and Mark Turnbull}, 5562 title = {The Real-Time Specification for {J}ava}, 5563 series = {The Real-Time for Java Expert Group, {\small\textsf{http://\-www.rtj.org}}}, 5564 publisher = {Addison-Wesley}, 5565 year = 2000, 5566 } 5567 5568 @manual{JavaRT99, 5569 organization= {Real Time for Java Experts Group}, 5570 address = {{\small\textsf{http://\-www.rtj.org}}}, 5571 month = sep, 5572 year = 1999, 5573 } 5574 5575 @article{Robinson48, 5576 keywords = {recursion, Ackermann function}, 5577 contributer = {pabuhr@plg}, 5578 author = {Raphael Mitchel Robinson}, 5579 title = {Recursion and Double Recursion}, 5580 publisher = {American Mathematical Society}, 5581 journal = {Bulletin of the American Mathematical Society}, 5582 volume = 54, 5583 pages = {987-993}, 5584 year = 1948, 5585 } 5586 5587 @article{Dijkstra:red, 5588 keywords = {ada}, 5589 contributer = {gjditchfield@plg}, 5590 author = {Edsger W. Dijkstra}, 5591 title = {On the RED Language submitted to the DoD}, 5592 journal = sigplan, 5593 year = 1978, 5594 month = oct, 5595 volume = 13, 5596 number = 10, 5597 pages = {27-32}, 5598 } 5599 5600 @article{RemoteRendezvous, 5601 keywords = {rendezvous, concurrency}, 5602 contributer = {pabuhr@plg}, 5603 author = {N. D. Gammage and R. F. Kamel and L. M. Casey}, 5604 title = {Remote Rendezvous}, 5605 journal = spe, 5606 month = oct, 5607 year = 1987, 5608 volume = 17, 5609 number = 10, 5610 pages = {741-755} 5611 } 5612 5613 @article{Euclid, 5614 keywords = {Euclid}, 5615 contributer = {pabuhr@plg}, 5616 author = {B. W. Lampson and J. J. Horning and R. L. London and J. G. Mitchell and G. L. Popek}, 5617 title = {Report on the Programming Language Euclid}, 5618 journal = sigplan, 5619 volume = 12, 5620 number = 2, 5621 month = feb, 5622 year = 1977, 5623 pages = {1-79} 5624 } 5625 5626 @techreport{LOGLAN88, 5627 keywords = {LOGLAN}, 5628 contributer = {pabuhr@plg}, 5629 author = {Boleslaw Ciesielski and Antoni Kreczmar and Marek Lao and Andrzej Litwiniuk and Teresa Przytycka and Andrzej Salwicki and Jolanta Warpechowska and Marek Warpechowski and Andrzej Szalas and Danuta Szczepanska--Wasersztrum}, 5630 title = {Report on the Programming Language LOGLAN'88}, 5631 institution = {Institute of Informatics, University of Warsaw}, 5632 address = {Pkin 8th Floor, 00-901 Warsaw, Poland}, 5633 number = {}, 5634 month = dec, 5635 year = 1988, 5636 } 5637 5638 @article{FH91, 5639 keywords = {lcc}, 5640 contributer = {gjditchfield@plg}, 5641 author = {Christopher W. Fraser and David R. Hanson}, 5642 title = {A Retargetable Compiler for {ANSI} {C}}, 5643 journal = sigplan, 5644 year = 1991, 5645 month = oct, volume = 26, number = 10, pages = {29-43}, 5646 abstract = { 5647 {\tt lcc} is a new retargetable compiler for ANSI C. Versions for 5648 the VAX, Motorola 68020, SPARC, and MIPS are in production use at 5649 Princeton University and at AT\&T Bell Laboratories. With a few 5650 exceptions, little about {\tt lcc} is unusual---it integrates 5651 several well engineered, existing techniques---but it is smaller 5652 and faster than most other C compilers, and it generates code of 5653 comparable quality. {\tt lcc}'s target-independent front end 5654 performs a few simple, but effective, optimizations that contribute 5655 to good code; examples include simulating register declarations and 5656 partitioning switch statements into dense tables. It also 5657 implements target-independent function tracing and expression-level 5658 profiling. 5659 } 5660 } 5661 5662 @article{Algol68revised, 5663 keywords = {}, 5664 contributer = {gjditchfield@plg}, 5665 author = {A. van Wijngaarden and B. J. Mailloux and J. E. L. Peck and 5666 C. H. A. Koster and M. Sintzoff and C. H. Lindsey and L. G. L. T. 5667 Meertens and R. G. Fisher}, 5668 title = {Revised Report on the Algorithmic Language {ALGOL} 68}, 5669 journal = sigplan, 5670 year = 1977, 5671 month = may, 5672 volume = 12, 5673 number = 5, 5674 pages = {1-70} 5675 } 5676 5677 @article{scheme, 5678 keywords = {}, 5679 contributer = {gjditchfield@plg}, 5680 author = {Jonathan Rees and William Clinger}, 5681 title = {Revised$^3$ Report on the Algorithmic Language {S}cheme}, 5682 journal = sigplan, 5683 year = 1986, 5684 month = dec, 5685 volume = 21, 5686 number = 12, 5687 pages = {37-79}, 5688 } 5689 5690 @article{scheme5, 5691 keywords = {scheme}, 5692 contributer = {pabuhr@plg}, 5693 author = {H. Abelson and Adams, IV, N. I. and D. H. Bartley and G. Brooks and R. K. Dybvig and D. P. Friedman and 5694 R. Halstead and C. Hanson and C. T. Haynes and E. Kohlbecker and D. Oxley and K. M. Pitman and G. J. Rozas and 5695 G. L. Steele Jr. and G. J. Sussman and M. Wand and \emph{Ed. by} Richard Kelsey and William Clinger and Jonathan Rees}, 5696 title = {Revised$^5$ Report on the Algorithmic Language {S}cheme}, 5697 journal = sigplan, 5698 year = 1998, 5699 month = sep, 5700 volume = 33, 5701 number = 9, 5702 pages = {26-76}, 5703 } 5704 5705 @manual{Rust, 5706 keywords = {Rust programming language}, 5707 contributer = {pabuhr@plg}, 5708 title = {The {Rust} Programming Language}, 5709 organization= {The Rust Project Developers}, 5710 year = 2015, 5711 note = {\href{https://doc.rust-lang.org/reference.html}{https://\-doc.rust-lang.org/\-reference.html}}, 5712 } 5713 5714 % S 5715 5716 @inproceedings{Michael04, 5717 keywords = {lock free, dynamic memory allocation}, 5718 contributer = {pabuhr@plg}, 5719 author = {Maged M. Michael}, 5720 title = {Scalable Lock-free Dynamic Memory Allocation}, 5721 booktitle = {PLDI '04: Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation}, 5722 location = {Washington DC, USA}, 5723 publisher = {ACM}, 5724 address = {New York, NY, USA}, 5725 volume = 39, 5726 year = 2004, 5727 month = jun, 5728 pages = {35-46}, 5729 } 5730 5731 @article{Anderson92, 5732 keywords = {light-weight tasks}, 5733 contributer = {pabuhr@plg}, 5734 author = {Thomas E. Anderson and Brian N. Bershad and Edward D. Lazowska and Henry M. Levy}, 5735 title = {Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism}, 5736 journal = tocs, 5737 volume = 10, 5738 number = 1, 5739 month = feb, 5740 year = 1992, 5741 pages = {53-79}, 5742 } 5743 5744 @manual{SELF, 5745 keywords = {programming language, obect-oriented, polymorphism}, 5746 contributer = {pabuhr@plg}, 5747 author = {Ole Agesen and Lars Bak and Craig Chambers and Bay-Wei Chang and Urs H{\o}lzle 5748 and John H. Maloney and Randall B. Smith and David Ungar and Mario Wolczko}, 5749 title = {The {SELF} 3.0 Programmer's Reference Manual}, 5750 organization= {Sun Microsystems, Inc., and Stanford University}, 5751 year = 1993, 5752 } 5753 5754 @inproceedings{Cardelli84, 5755 keywords = {subtypes, recursive types, records, variants, object oriented}, 5756 contributer = {gjditchfield@plg}, 5757 author = {Luca Cardelli}, 5758 title = {A Semantics of Multiple Inheritance}, 5759 booktitle = {Semantics of Data Types}, 5760 year = 1984, 5761 pages = {51-67}, 5762 editor = {G. Kahn and D. B. MacQueen and G. D. Plotkin}, 5763 publisher = {Springer-Verlag}, 5764 note = {Lecture Notes in Computer Science v. 173}, 5765 } 5766 5767 @techreport{Adve95, 5768 keywords = {shared memory, consistency models}, 5769 contributer = {pabuhr@plg}, 5770 author = {Sarita V. Adve and Kourosh Gharachorloo}, 5771 title = {Shared Memory Consistency Models: A Tutorial}, 5772 institution = {Western Research Laboratory}, 5773 address = {250 University Avenue, Palo Alto, California, 94301, U.S.A.}, 5774 number = {7}, 5775 month = sep, 5776 year = 1995, 5777 note = {\href{http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-95-7.pdf}{\textsf{http://www.hpl.hp.com/\-techreports/\-Compaq-DEC/\-WRL-95-7.pdf}}, Reprinted in \cite{Adve95reprint}.}, 5778 } 5779 5780 @article{Adve95reprint, 5781 keywords = {shared memory, consistency models}, 5782 contributer = {pabuhr@plg}, 5783 author = {Sarita V. Adve and Kourosh Gharachorloo}, 5784 journal = {Computer}, 5785 title = {Shared Memory Consistency Models: A Tutorial}, 5786 month = dec, 5787 year = 1996, 5788 volume = 29, 5789 number = 12, 5790 pages = {66-76}, 5791 } 5792 5793 @inproceedings{Howard76b, 5794 keywords = {monitors}, 5795 contributer = {pabuhr@plg}, 5796 author = {J. H. Howard}, 5797 title = {Signaling in Monitors}, 5798 booktitle = {Proceedings Second International Conference Software Engineering}, 5799 address = {San Francisco, U.S.A}, 5800 publisher = {IEEE Computer Society}, 5801 month = oct, 5802 year = 1976, 5803 pages = {47-52} 5804 } 5805 5806 @techreport{Schemenauer01, 5807 keywords = {Phthon, generator, coroutine}, 5808 contributer = {pabuhr@plg}, 5809 author = {Neil Schemenauer and Tim Peters and Magnus Lie Hetland}, 5810 title = {Simple Generators}, 5811 month = may, 5812 year = 2001, 5813 note = {{\small\textsf{http://www.python.org/peps/pep-0255.html}}}, 5814 } 5815 5816 @inproceedings{Michael96, 5817 keywords = {compare_and_swap, concurrent queue, lock-free, multiprogramming, non-blocking}, 5818 contributer = {pabuhr@plg}, 5819 author = {Maged M. Michael and Michael L. Scott}, 5820 title = {Simple, Fast, and Practical Non-blocking and Blocking Concurrent Queue Algorithms}, 5821 booktitle = {Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing}, 5822 series = {PODC'96}, 5823 year = 1996, 5824 location = {Philadelphia, Pennsylvania, USA}, 5825 pages = {267--275}, 5826 numpages = {9}, 5827 publisher = {ACM}, 5828 address = {New York, NY, USA}, 5829 } 5830 5831 @inproceedings{Dice10, 5832 keywords = {hardware, synchronization, transactional memory}, 5833 author = {Dave Dice and Yossi Lev and Virendra J. Marathe and Mark Moir and Dan Nussbaum and Marek Olszewski}, 5834 title = {Simplifying Concurrent Algorithms by Exploiting Hardware Transactional Memory}, 5835 booktitle = {Proceedings of the Twenty-second Annual ACM Symposium on Parallelism in Algorithms and Architectures}, 5836 series = {SPAA'10}, 5837 year = 2010, 5838 location = {Thira, Santorini, Greece}, 5839 pages = {325-334}, 5840 numpages = {10}, 5841 publisher = {ACM}, 5842 address = {New York, NY, USA}, 5843 } 5844 5845 @article{PDM:overload, 5846 keywords = {compilation}, 5847 contributer = {gjditchfield@plg}, 5848 author = {Tom Pennello and Frank DeRemer and Richard Meyers}, 5849 title = {A Simplified Operator Identification Scheme for {Ada}}, 5850 journal = sigplan, 5851 year = 1980, 5852 month = {July--August}, 5853 volume = 15, 5854 number = {7/8}, 5855 pages = {82-87}, 5856 comment = { 5857 The two-pass (bottom-up, top-down) overload resolution algorithm 5858 for Ada, with a proof that two passes suffice and a claim that two 5859 are necessary. See \cite{D:overload}. 5860 } 5861 } 5862 5863 @book{SimulaBegin, 5864 author = {Graham M. Birtwistle and Ole-Johan Dahl and Bj{\o}rn Myhrhaug and Kristen Nygaard}, 5865 title = {{SIMULA} begin}, 5866 publisher = {Studentlitteratur}, 5867 year = {1980}, 5868 address = {Lund, Sweden}, 5869 edition = {second}, 5870 } 5871 5872 @book{Simula67, 5873 author = "O-J Dahl and B. Myhrhaug and K. Nygaard", 5874 address = "Oslo Norway", 5875 month = oct, 5876 year = 1970, 5877 publisher = "Norwegian Computing Center", 5878 title = "Simula67 Common Base Language" 5879 } 5880 5881 @book{smalltalk, 5882 keywords = {Smalltalk, abstract class, protocol}, 5883 contributer = {gjditchfield@plg}, 5884 author = {A. Goldberg and D. Robson}, 5885 title = {Smalltalk-80: The Language and its Implementation}, 5886 publisher = {Addison-Wesley}, 5887 year = 1983 5888 } 5889 5890 @inproceedings{Edelson92, 5891 keywords = {persistence, pointers}, 5892 contributer = {pabuhr@plg}, 5893 author = {Daniel R. Edelson}, 5894 title = {Smart Pointers: They're Smart, but They're Not Pointers}, 5895 booktitle = {USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Technical Conference Proceedings}, 5896 organization= {USENIX Association}, 5897 address = {Portland, Oregon, U.S.A.}, 5898 month = aug, 5899 year = 1992, 5900 pages = {1-19}, 5901 } 5902 5903 @book{SNOBOL, 5904 keywords = {SNOBOL4}, 5905 contributer = {pabuhr@plg}, 5906 author = {R. E. Griswold and J. F. Poage and I. P. Polonsky}, 5907 title = {The SNOBOL4 Programming Language}, 5908 edition = {second}, 5909 publisher = {Prentice-Hall}, 5910 year = 1971, 5911 } 5912 5913 @article{Sutter05b, 5914 keywords = {concurrency}, 5915 contributer = {pabuhr@plg}, 5916 author = {Herb Sutter and James Larus}, 5917 title = {Software and the Concurrency Revolution}, 5918 journal = Queue, 5919 year = 2005, 5920 month = sep, 5921 volume = 3, 5922 number = 7, 5923 pages = {54-62}, 5924 } 5925 5926 @inproceedings{raytheon, 5927 keywords = {cobol}, 5928 contributer = {gjditchfield@plg}, 5929 author = {Robert G. Lanergan and Charles A. Grasso}, 5930 title = {Software Engineering with Reusable Designs and Code}, 5931 booktitle = {Workshop on Reusability in Programming}, 5932 year = 1983, 5933 month = sep, 5934 pages = {224-234}, 5935 organization= {{ITT} Programming}, 5936 summary = { 5937 60\% of business application design and code are redundant. 5938 Three standard program plans are used. Reuse doubles productivity 5939 during development and greatly helps program comprehension during 5940 maintenance. 5941 } 5942 } 5943 5944 @article{Hecht86, 5945 keywords = {exception handling, robustness}, 5946 contributer = {pabuhr@plg}, 5947 author = {H. Hecht and M. Hecht}, 5948 title = {Software Reliability in the Systems Context}, 5949 journal = ieeese, 5950 year = 1986, 5951 volume = 12, 5952 number = 1, 5953 pages = {51-58}, 5954 } 5955 5956 @inproceedings{Herlihy03, 5957 author = {Maurice Herlihy and Victor Luchangco and Mark Moir and William N. {Scherer III}}, 5958 title = {Software Transactional Memory for Dynamic-sized Data Structures}, 5959 booktitle = {Proceedings of the Twenty-second Annual Symposium on Principles of Distributed Computing}, 5960 series = {PODC '03}, 5961 year = {2003}, 5962 location = {Boston, Massachusetts}, 5963 pages = {92-101}, 5964 numpages = {10}, 5965 publisher = {ACM}, 5966 address = {New York, NY, USA}, 5967 } 5968 5969 @article{Dijkstra65a, 5970 keywords = {N-thread software-solution mutual exclusion}, 5971 contributer = {pabuhr@plg}, 5972 author = {Edsger W. Dijkstra}, 5973 title = {Solution of a Problem in Concurrent Programming Control}, 5974 journal = cacm, 5975 volume = 8, 5976 number = 9, 5977 month = sep, 5978 year = 1965, 5979 pages = {569}, 5980 publisher = {ACM}, 5981 address = {New York, NY, USA}, 5982 } 5983 5984 @inproceedings{Chen05, 5985 keywords = {fixed-priority, preemption}, 5986 contributer = {pabuhr@plg}, 5987 author = {Jiongxiong Chen and Ashif Harji and Peter Buhr}, 5988 title = {Solution Space for Fixed-Priority with Preemption Threshold}, 5989 booktitle = {Proceedings of the 11th Real Time and Embedded Technology and Applications Symposium (RTAS'05)}, 5990 organization= {IEEE}, 5991 address = {San Francisco, CA, U.S.A}, 5992 month = mar, 5993 year = 2005, 5994 pages = {385-394} 5995 } 5996 5997 @inproceedings{Tiemann88, 5998 keywords = {wrappers}, 5999 contributer = {pabuhr@plg}, 6000 author = {Michael D. Tiemann}, 6001 title = {Solving the RPC problem in GNU {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 6002 booktitle = {Proceedings of the USENIX {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Conference}, 6003 organization= {USENIX Association}, 6004 address = {Denver, Colorado, U.S.A}, 6005 month = oct, 6006 year = 1988, 6007 pages = {343-361} 6008 } 6009 6010 @book{Campbell74, 6011 keywords = {path expressions}, 6012 contributer = {pabuhr@plg}, 6013 author = {R. H. Campbell and A. N. Habermann}, 6014 title = {The Specification of Process Synchronization by Path Expressions}, 6015 publisher = {Springer-Verlag}, 6016 year = 1974, 6017 volume = 16, 6018 pages = {89-102}, 6019 series = {Lecture Notes in Computer Science}, 6020 } 6021 6022 @article{Bentley85, 6023 keywords = {CSP, concurrency}, 6024 contributer = {pabuhr@plg}, 6025 author = {J. Bentley}, 6026 title = {A Spelling Checker}, 6027 journal = cacm, 6028 month = may, 6029 year = 1985, 6030 volume = 28, 6031 number = 5, 6032 pages = {456-462}, 6033 } 6034 6035 @manual{POSIX01, 6036 keywords = {POSIX, Standard}, 6037 contributer = {pabuhr@plg}, 6038 key = {POSIX}, 6039 title = {1003.1 Standard for Information Technology -- Portable Operating System Interface (POSIX), System Interface, Issue 6}, 6040 organization= {IEEE and The Open Group}, 6041 year = 2001, 6042 } 6043 6044 @manual{POSIX08, 6045 keywords = {POSIX, Standard}, 6046 contributer = {pabuhr@plg}, 6047 key = {POSIX}, 6048 title = {1003.1 Standard for Information Technology -- Portable Operating System Interface (POSIX), Base Specifications, Issue 7}, 6049 organization= {IEEE and The Open Group}, 6050 year = 2008, 6051 } 6052 6053 @inproceedings{ML:NJ, 6054 keywords = {continuations, ML}, 6055 contributer = {pabuhr@plg}, 6056 author = {A. Appel and D. MacQueen}, 6057 title = {A Standard {ML} Compiler}, 6058 booktitle = {Functional Programming Languages and Computer Architecture}, 6059 publisher = {Springer-Verlag}, 6060 series = {Lecture Notes in Computer Science}, 6061 volume = 274, 6062 year = 1987, 6063 pages = {301-324}, 6064 } 6065 6066 @techreport{MLreport, 6067 keywords = {ML, polymorphism}, 6068 contributer = {pabuhr@plg}, 6069 author = {R. Milner}, 6070 title = {The Standard {ML} Core Language}, 6071 institution = {}, 6072 number = {Polymorphism II.2}, 6073 month = oct, 6074 year = 1985 6075 } 6076 6077 @inproceedings{Ghelli, 6078 keywords = {}, 6079 contributer = {gjditchfield@plg}, 6080 author = {Giorgio Ghelli}, 6081 title = {A Static Type System for Message Passing}, 6082 crossref = "OOPSLA91", 6083 pages = {129-145}, 6084 summary = { 6085 A strong, statically checked type system for object oriented 6086 languages is defined by modelling methods as overloaded functions 6087 with a "self" parameter, with dynamic overload resolution. This 6088 allows covariant method redefinition. However, if equality is 6089 covariantly redefined for Point and ColoredPoint classes, and a 6090 ColoredPoint is compared to a Point, Point equality will be used, 6091 even if self is the colored point! 6092 } 6093 } 6094 6095 @article{Dijkstra68b, 6096 keywords = {semaphore, P/V}, 6097 contributer = {pabuhr@plg}, 6098 author = {E. W. Dijkstra}, 6099 title = {The Structure of the ``{THE}''--Multiprogramming System}, 6100 journal = cacm, 6101 month = may, 6102 year = 1968, 6103 volume = 11, 6104 number = 5, 6105 pages = {341-346} 6106 } 6107 6108 @book{Holt78, 6109 keywords = {operating systems, concurrency}, 6110 contributer = {pabuhr@plg}, 6111 author = {R. C. Holt and G. S. Graham and E. D. Lazowska and M. A. Scott}, 6112 title = {Structured Concurrent Programming with Operating System Applications}, 6113 publisher = {Addison-Wesley}, 6114 year = 1978, 6115 } 6116 6117 @article{Stevens74, 6118 keywords = {coupling, cohesion}, 6119 contributer = {pabuhr@plg}, 6120 author = {W. P. Stevens and and G. J. Myers and L. L. Constantine}, 6121 title = {Structured Design}, 6122 journal = ibmsj, 6123 year = 1974, 6124 volume = 13, 6125 number = 2, 6126 pages = {115-139}, 6127 } 6128 6129 @article{Hansen72b, 6130 keywords = {critical region}, 6131 contributer = {pabuhr@plg}, 6132 author = {Per {Brinch Hansen}}, 6133 title = {Structured Multiprogramming}, 6134 journal = cacm, 6135 volume = 15, 6136 number = 7, 6137 month = jul, 6138 year = 1972, 6139 pages = {574-578}, 6140 } 6141 6142 @article{Knuth74, 6143 keywords = {structured programming, goto statement}, 6144 contributer = {pabuhr@plg}, 6145 author = {Donald E. Knuth}, 6146 title = {Structured Programming with go to Statements}, 6147 journal = acmcs, 6148 volume = 6, 6149 number = 4, 6150 month = dec, 6151 year = 1974, 6152 pages = {261-301}, 6153 issn = {0360-0300}, 6154 doi = {http://doi.acm.org/10.1145/356635.356640}, 6155 publisher = {ACM}, 6156 address = {New York, NY, USA}, 6157 } 6158 6159 @article{Lang98, 6160 keywords = {real-time, exception handling}, 6161 contributer = {pabuhr@plg}, 6162 author = {Jun Lang and David B. Stewart}, 6163 title = {A Study of the Applicability of Existing Exception-Handling Techniques to Component-Based Real-Time Software Technology}, 6164 journal = toplas, 6165 month = mar, 6166 year = 1998, 6167 volume = 20, 6168 number = 2, 6169 pages = {274-301}, 6170 } 6171 6172 @mastersthesis{Fortier89, 6173 keywords = {monitors}, 6174 contributer = {pabuhr@plg}, 6175 author = {Michel Fortier}, 6176 title = {Study of Monitors}, 6177 school = {Department of Computer Science, University of Waterloo}, 6178 year = 1989, 6179 address = {Waterloo, Ontario, Canada, N2L 3G1}, 6180 } 6181 6182 @techreport{AmadioCardelli, 6183 keywords = {}, 6184 contributer = {gjditchfield@plg}, 6185 author = {Roberto M. Amadio and Luca Cardelli}, 6186 title = {Subtyping Recursive Types}, 6187 institution = {Digital Equipment Corporation Systems Research Center}, 6188 year = 1990, 6189 address = {130 Lytton Avenue, Palo Alto, California 94301}, 6190 month = aug, 6191 number = 62, 6192 summary = { 6193 \[ (s \leq t \Rightarrow \alpha \leq \beta) \Rightarrow 6194 \mu s.\alpha leq \mu t.\beta \] 6195 \[ \alpha = C[\alpha] \and \beta = C[\beta] \and C contractive 6196 \Rightarrow \alpha = \beta \] 6197 where a type \(\alpha\) is contractive in the type variable \(t\) 6198 if either \(t\) does not occur free in \(\alpha\), or \(\alpha\) 6199 can be rewritten via unfolding as a type of the shape 6200 \(\alpha_1 \rightarrow \alpha_2\), and unfolding rewrites 6201 \(\mu t.\alpha\) as \([t\leftarrow\mu t.\alpha]\alpha\). An 6202 algorithm for finding type contexts \(C\) is given. 6203 } 6204 } 6205 6206 @techreport{Dijkstra80, 6207 keywords = {split binary semaphores, general to binary}, 6208 contributer = {pabuhr@plg}, 6209 author = {Edsger W. Dijkstra}, 6210 title = {The Superfluity of the General Semaphore}, 6211 institution = {Nuenen}, 6212 address = {Netherlands}, 6213 number = {EWD734}, 6214 month = apr, 6215 year = 1980, 6216 } 6217 6218 @inproceedings{Burns81, 6219 keywords = {N-thread software-solution mutual exclusion}, 6220 contributer = {pabuhr@plg}, 6221 author = {James E. Burns}, 6222 title = {Symmetry in Systems of Asynchronous Processes}, 6223 booktitle = {22nd Annual Symposium on Foundations of Computer Science, Nashville, TN, USA}, 6224 year = 1981, 6225 month = oct, 6226 organization= {IEEE Computer Society}, 6227 address = {Los Angeles, CA, USA}, 6228 pages = {169-174}, 6229 } 6230 6231 @article{Coffman71, 6232 keywords = {deadlock}, 6233 contributer = {pabuhr@plg}, 6234 author = {E. G. {Coffman, Jr.} and M. J. Elphick and A. Shoshani}, 6235 title = {System Deadlocks}, 6236 journal = acmcs, 6237 volume = 3, 6238 number = 2, 6239 month = jun, 6240 year = 1971, 6241 pages = {67-78}, 6242 publisher = {ACM Press}, 6243 address = {New York, NY, USA}, 6244 doi = {http://doi.acm.org/10.1145/356586.356588}, 6245 } 6246 6247 @phdthesis{Holmes99, 6248 keywords = {synchronization, inheritance anomaly}, 6249 contributer = {pabuhr@plg}, 6250 author = {David Holmes}, 6251 title = {Synchronisation Rings: Composable Synchronisation for Object-Oriented Systems}, 6252 school = {Department of Computing, Macquarie University}, 6253 month = oct, 6254 year = 1999, 6255 address = {Sydney, Australia}, 6256 } 6257 6258 @book{Taubenfeld06, 6259 keywords = {concurrency, synchronization}, 6260 author = {Gadi Taubenfeld}, 6261 title = {Synchronization Algorithms and Concurrent Programming}, 6262 publisher = {Pearson/Prentice Hall}, 6263 year = 2006, 6264 } 6265 6266 @article{Buhr92b, 6267 keywords = {concurrency, exception handling, interventions}, 6268 contributer = {pabuhr@plg}, 6269 author = {Peter A. Buhr and Hamish I. Macdonald and C. Robert Zarnke}, 6270 title = {Synchronous and Asynchronous Handling of Abnormal Events in the $\mu${S}ystem}, 6271 journal = spe, 6272 volume = 22, 6273 number = 9, 6274 month = sep, 6275 year = 1992, 6276 pages = {735-776}, 6277 } 6278 6279 @inproceedings{Greenwald96, 6280 keywords = {compare and swap, hardware atomicity}, 6281 contributer = {pabuhr@plg}, 6282 author = {Michael Greenwald and David Cheriton}, 6283 title = {The Synergy between Non-blocking Synchronization and Operating System Structure}, 6284 booktitle = {Proceedings of the Second USENIX Symposium on Operating Systems Design and Implementation}, 6285 organization= {USENIX Association}, 6286 address = {Seattle, Washington, U.S.A.}, 6287 month = oct, 6288 year = 1996, 6289 pages = {123-136}, 6290 } 6291 6292 @inbook{SunLWP, 6293 keywords = {light-weight processes, threads}, 6294 contributer = {pabuhr@plg}, 6295 key = {Sun}, 6296 title = {System Services Overview, Lightweight Processes}, 6297 chapter = {6}, 6298 pages = {71-111}, 6299 publisher = {Sun Microsystems}, 6300 month = may, 6301 year = 1988, 6302 note = {available as Part Number: 800-1753-10}, 6303 } 6304 6305 @article{Randell75, 6306 contributer = {pabuhr@plg}, 6307 author = {Brian Randell}, 6308 title = {System Structure for Software Fault Tolerance}, 6309 journal = ieeese, 6310 volume = {SE-1}, 6311 number = 2, 6312 month = jun, 6313 year = 1975, 6314 pages = {220-232}, 6315 } 6316 6317 @book{Modula-3, 6318 keywords = {language reference manual}, 6319 contributer = {pabuhr@plg}, 6320 author = {Andrew Birrell and Mark R. Brown and Luca Cardelli and Jim Donahue and Lucille Glassman and John Gutag and Jim Harning and Bill Kalsow and Roy Levin and Greg Nelson}, 6321 title = {Systems Programming with Modula-3}, 6322 publisher = {Prentice-Hall, Inc.}, 6323 year = 1991, 6324 series = {Prentice Hall Series in Innovative Technology} 6325 } 6326 6327 % T 6328 6329 @article{Yeager91, 6330 keywords = {teaching, concurrency}, 6331 contributer = {pabuhr@plg}, 6332 author = {Dorian P. Yeager}, 6333 title = {Teaching Concurrency in the Programming Languages Course}, 6334 journal = {SIGCSE BULLETIN}, 6335 volume = 23, 6336 number = 1, 6337 month = mar, 6338 year = 1991, 6339 pages = {155-161}, 6340 note = {The Papers of the Twenty-Second SIGCSE Technical Symposium on Computer Science Education, 6341 March. 7--8, 1991, San Antonio, Texas, U.S.A.}, 6342 } 6343 6344 @article{ml, 6345 keywords = {ML, polymorphism}, 6346 contributer = {gjditchfield@plg}, 6347 author = {Robin Milner}, 6348 title = {A Theory of Type Polymorphism in Programming}, 6349 journal = jcss, 6350 year = 1978, 6351 volume = 17, pages = {348-375} 6352 } 6353 6354 @book{Thoth, 6355 keywords = {messages, concurrency}, 6356 contributer = {pabuhr@plg}, 6357 author = {D. R. Cheriton}, 6358 title = {The Thoth System: Multi-Process Structuring and Portability}, 6359 publisher = {American Elsevier}, 6360 year = 1982 6361 } 6362 6363 @article{Boehm05, 6364 keywords = {concurrency, C++}, 6365 contributer = {pabuhr@plg}, 6366 author = {Hans-J. Boehm}, 6367 title = {Threads Cannot be Implemented as a Library}, 6368 journal = sigplan, 6369 volume = 40, 6370 number = 6, 6371 month = jun, 6372 year = 2005, 6373 pages = {261-268}, 6374 } 6375 6376 @misc{Bumbulis90, 6377 keywords = {parameter inference, ForceN}, 6378 contributer = {gjditchfield@plg}, 6379 author = {Peter Bumbulis}, 6380 title = {Towards Making Signatures First-Class}, 6381 howpublished= {personal communication}, 6382 month = sep, year = 1990, 6383 note = {} 6384 } 6385 6386 @techreport{alphard:preempt, 6387 keywords = {}, 6388 contributer = {gjditchfield@plg}, 6389 author = {Mary Shaw and Wm. A. Wulf}, 6390 title = {Toward Relaxing Assumptions in Languages and Their Implementations}, 6391 institution = {Carnegie-Mellon University}, 6392 year = 1980, 6393 month = jan, 6394 note = {Reprinted in \cite{alphard}.} 6395 } 6396 6397 @inproceedings{Reynolds74, 6398 keywords = {universal quantification, typed lambda calculus}, 6399 contributer = {gjditchfield@plg}, 6400 author = {John C. Reynolds}, 6401 title = {Towards a Theory of Type Structure}, 6402 booktitle = {Colloque sur la Programmation}, 6403 year = 1974, 6404 pages = {408-423}, 6405 editor = {B. Robinet}, 6406 publisher = {Springer-Verlag}, 6407 note = {Lecture Notes in Computer Science, v. 19}, 6408 abstract = { 6409 6410 } 6411 } 6412 6413 @incollection{Hoare72, 6414 keywords = {critical region, concurrency}, 6415 contributer = {pabuhr@plg}, 6416 author = {C. A. R. Hoare}, 6417 title = {Towards a Theory of Parallel Programming}, 6418 booktitle = {Operating Systems Techniques}, 6419 editor = {C. A. R. Hoare and R. H. Perott}, 6420 publisher = {Academic Press, New York}, 6421 year = 1972, 6422 pages = {61-71}, 6423 } 6424 6425 @inproceedings{Mitchell90, 6426 keywords = {polymorphism, lambda calculus, bounded quantification}, 6427 contributer = {gjditchfield@plg}, 6428 author = {John C. Mitchell}, 6429 title = {Toward a Typed Foundation for Method Specialization and Inheritance}, 6430 booktitle = {Conference Record of the Seventeenth Annual ACM Symposium 6431 on Principles of Programming Languages}, 6432 year = 1990, 6433 month = jan, pages = {109-124}, 6434 organization= {Association for Computing Machinery}, 6435 abstract = { 6436 This paper disucsses the phenomenon of {\em method specialization} 6437 in object-oriented programming languages. A typed function 6438 calculus of objects and classes is presented, featuring method 6439 specialization when methods are added or redefined. The soundness 6440 of the typing rules (without subtyping) is suggested by a 6441 translation into a more traditional calculus with 6442 recursively-defined record types. However, semantic questions 6443 regarding the subtype relation on classes remain open. 6444 } 6445 } 6446 6447 @article{EL1, 6448 keywords = {polymorphism}, 6449 contributer = {pabuhr@plg}, 6450 author = {B. Wegbreit}, 6451 title = {The Treatment of Data Types in {EL1}}, 6452 journal = cacm, 6453 volume = 17, 6454 number = 5, 6455 month = may, 6456 year = 1974, 6457 pages = {251-264}, 6458 } 6459 6460 @mastersthesis{Till89, 6461 keywords = {C, multiple return values, tuples}, 6462 contributer = {pabuhr@plg}, 6463 author = {David W. Till}, 6464 title = {Tuples In Imperative Programming Languages}, 6465 school = {Department of Computer Science, University of Waterloo}, 6466 year = 1989, 6467 address = {Waterloo, Ontario, Canada, N2L 3G1}, 6468 } 6469 6470 @article{turing:old, 6471 keywords = {verification, context conditions, faithful execution}, 6472 contributer = {gjditchfield@plg}, 6473 author = {R. C. Holt and J. R. Cordy}, 6474 title = {The Turing Programming Language}, 6475 journal = cacm, 6476 year = 1988, 6477 month = dec, 6478 volume = 31, number = 12, pages = {1410-1423} 6479 } 6480 6481 @book{Turing, 6482 keywords = {verification, context conditions, faithful execution}, 6483 contributer = {pabuhr@plg}, 6484 author = {R. C. Holt}, 6485 title = {Turing Reference Manual}, 6486 publisher = {Holt Software Associates Inc.}, 6487 year = 1992, 6488 edition = {third}, 6489 } 6490 6491 @techreport{Dijkstra79, 6492 keywords = {split binary semaphores}, 6493 contributer = {pabuhr@plg}, 6494 author = {Edsger W. Dijkstra}, 6495 title = {A Tutorial on the Split Binary Semaphore}, 6496 institution = {Nuenen}, 6497 address = {Netherlands}, 6498 number = {EWD703}, 6499 month = mar, 6500 year = 1979, 6501 } 6502 6503 @book{pldesign, 6504 keywords = {}, 6505 editor = {Anthony I. Wasserman}, 6506 title = {Tutorial: Programming Language Design}, 6507 publisher = {Computer Society Press}, 6508 year = 1980 6509 } 6510 6511 @article{Leroy00, 6512 keywords = {type-systems, exceptions}, 6513 contributer = {pabuhr@plg}, 6514 author = {Xavier Leroy and Fran\c{c}ois Pessaux}, 6515 title = {Type-Based Analysis of Uncaught Exceptions}, 6516 journal = toplas, 6517 month = mar, 6518 year = 2000, 6519 volume = 22, 6520 number = 2, 6521 pages = {340-377}, 6522 comment = { 6523 Argues against declaring exceptions on routine definitions. 6524 }, 6525 } 6526 6527 @article{Cormack90, 6528 keywords = {polymorphism}, 6529 contributer = {pabuhr@plg}, 6530 author = {G. V. Cormack and A. K. Wright}, 6531 title = {Type-dependent Parameter Inference}, 6532 journal = sigplan, 6533 volume = 25, 6534 number = 6, 6535 month = jun, 6536 year = 1990, 6537 pages = {127-136}, 6538 note = {Proceedings of the ACM Sigplan'90 Conference on Programming Language Design and Implementation 6539 June 20-22, 1990, White Plains, New York, U.S.A.}, 6540 } 6541 6542 @article{concatenation, 6543 keywords = {record concatenation, isa}, 6544 contributer = {gjditchfield@plg}, 6545 author = {N. Wirth}, 6546 title = {Type Extensions}, 6547 journal = toplas, 6548 volume = {10}, 6549 number = {2}, 6550 pages = {204-214}, 6551 month = apr, year = 1988, 6552 comment = { 6553 Extended record types add fields to their base record. Assignment 6554 truncations. Pointers can point at extended type instances. For 6555 polymorphism, call by value is assignment, and call by reference is 6556 pointer passing. Overloading isn't discussed. Type information 6557 can be recovered through an ``is'' type test or through type guards 6558 (casts). A version of the WITH statement could avoid repeated 6559 checking. 6560 6561 Private/public access to record fields can be provided by exporting 6562 a base type, and using a private extension. Statically allocated 6563 instances need a compiler hint specifying the maximum size of the 6564 private type. 6565 6566 Type checking is cheap (if the creation of pointer values is 6567 controlled). Types have type descriptors. Extension descriptors 6568 point at their direct base. Heap objects point at their 6569 descriptor, and reference parameters are accompanied by type 6570 descriptor parameters. ``v is t0'' loops along the chain of 6571 descriptors. 6572 } 6573 } 6574 6575 % U 6576 6577 @unpublished{uC++book, 6578 keywords = {control structure, concurrency}, 6579 contributer = {pabuhr@plg}, 6580 author = {Peter A. Buhr}, 6581 title = {Understanding Control Flow with Concurrent Programming using $\mu${C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}}, 6582 year = 1999, 6583 note = {Textbook in preparation} 6584 } 6585 6586 @article{Cardelli85, 6587 keywords = {polymorphism}, 6588 contributer = {pabuhr@plg}, 6589 author = {Luca Cardelli and Peter Wegner}, 6590 title = {On Understanding Types, Data Abstractions, and Polymorphism}, 6591 journal = acmcs, 6592 month = dec, 6593 year = 1985, 6594 volume = 17, 6595 number = 4, 6596 pages = {471-522}, 6597 } 6598 6599 @inproceedings{Wilson92, 6600 keywords = {garbage collection survey}, 6601 contributer = {pabuhr@plg}, 6602 author = {Paul R. Wilson}, 6603 title = {Uniprocessor Garbage Collection Techniques}, 6604 booktitle = {Proceedings of the International Workshop on Memory Management}, 6605 location = {St. Malo, France}, 6606 publisher = {Springer-Verlag}, 6607 series = {Lecture Notes in Computer Science}, 6608 volume = 637, 6609 month = sep, 6610 year = {1992}, 6611 pages = {1-42}, 6612 } 6613 6614 @inproceedings{Hewitt73, 6615 author = {Carl Hewitt and Peter Bishop and Richard Steiger}, 6616 title = {A Universal Modular {ACTOR} Formalism for Artificial Intelligence}, 6617 booktitle = {Proceedings of the 3rd International Joint Conference on Artificial Intelligence}, 6618 address = {Standford, California, U.S.A.}, 6619 pages = {235-245}, 6620 month = aug, 6621 year = 1973, 6622 } 6623 6624 @article{Bourne78, 6625 keywords = {Shell}, 6626 contributer = {pabuhr@plg}, 6627 author = {S. R. Bourne}, 6628 title = {The UNIX Shell}, 6629 journal = {The Bell System Technical Journal}, 6630 volume = {57, part 2}, 6631 month = {July--August}, 6632 year = 1978, 6633 pages = {1971-1990}, 6634 } 6635 6636 @inproceedings{Krischer12, 6637 keywords = {exception, usability, asynchronous, assertion, injection, logging}, 6638 contributer = {pabuhr@plg}, 6639 author = {Roy Krischer and Peter A. Buhr}, 6640 title = {Usability Challenges in Exception Handling}, 6641 booktitle = {5th International Workshop on Exception Handling (WEH)}, 6642 organization= {16th International Symposium on the Foundations of Software Engineering (FSE 16)}, 6643 address = {Zurich, Switzerland}, 6644 month = jun, 6645 year = 2012, 6646 pages = {7-13}, 6647 } 6648 6649 @techreport{Harmony, 6650 keywords = {messages, concurrency}, 6651 contributer = {pabuhr@plg}, 6652 author = {W. Morven Gentleman}, 6653 title = {Using the Harmony Operating System}, 6654 institution = {National Research Council of Canada, Ottawa, Canada}, 6655 number = {24685}, 6656 month = may, 6657 year = 1985 6658 } 6659 6660 @article{delegation, 6661 keywords = {delegation, inheritance, actors}, 6662 contributer = {gjditchfield@plg}, 6663 author = {Henry Lieverman}, 6664 title = {Using Prototypical Objects to Implement Shared Behavior in 6665 Object Oriented Systems}, 6666 journal = sigplan, 6667 month = nov, year = 1986, 6668 volume = 21, number = 11, pages = {214-223} 6669 } 6670 6671 % V 6672 6673 @article{V-Kernel, 6674 keywords = {messages, concurrency}, 6675 contributer = {pabuhr@plg}, 6676 author = {David R. Cheriton}, 6677 title = {The {V} Distributed System}, 6678 journal = cacm, 6679 month = mar, 6680 year = 1988, 6681 volume = 31, 6682 number = 3, 6683 pages = {314-333} 6684 } 6685 6686 @inproceedings{Amdahl67, 6687 author = {Gene M. Amdahl}, 6688 title = {Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities}, 6689 booktitle = {Proceedings of the April 18-20, 1967, Spring Joint Computer Conference}, 6690 series = {AFIPS '67 (Spring)}, 6691 year = 1967, 6692 location = {Atlantic City, New Jersey}, 6693 pages = {483--485}, 6694 publisher = {ACM}, 6695 address = {New York, NY, USA}, 6696 } 6697 6698 @article{Mayer81, 6699 keywords = {}, 6700 contributer = {pabuhr@plg}, 6701 author = {A. J. W. Mayer}, 6702 title = {Value Receiving Procedures}, 6703 journal = sigplan, 6704 volume = 16, 6705 number = 11, 6706 month = nov, 6707 year = 1981, 6708 pages = {30-34}, 6709 } 6710 6711 @article{Doran80, 6712 keywords = {concurrency, Dekker's Algorithm}, 6713 contributer = {pabuhr@plg}, 6714 author = {R. W. Doran and L. K. Thomas}, 6715 title = {Variants of the Software Solution to Mutual Exclusion}, 6716 journal = ipl, 6717 month = jul, 6718 year = 1980, 6719 volume = 10, 6720 number = {4/5}, 6721 pages = {206-208}, 6722 } 6723 6724 @book{VAX, 6725 keywords = {VAX, DEC}, 6726 contributer = {pabuhr@plg}, 6727 key = {VAX}, 6728 title = {VAX-11 Architecture Reference Manual}, 6729 publisher = {Digital Press}, 6730 month = may, 6731 year = 1982, 6732 } 6733 6734 @book{Kenah88, 6735 author = {Lawrence J. Kenah and Ruth E. Goldenberg and Simon F. Bate}, 6736 title = {{VAX/VMS} Internals and Data Structures Version 4.4}, 6737 publisher = {Digital Press}, 6738 year = 1988, 6739 } 6740 6741 @article{Hesselink13, 6742 keywords = {software solutions, N-thread, mutual exclusions}, 6743 contributer = {pabuhr@plg}, 6744 author = {Wim H. Hesselink}, 6745 title = {Verifying a Simplification of Mutual Exclusion by {L}ycklama--{H}adzilacos}, 6746 journal = {Acta Informatica}, 6747 publisher = {Springer-Verlag}, 6748 year = {2013}, 6749 volume = {50}, 6750 number = {3}, 6751 pages = {199-228}, 6752 } 6753 6754 % W 6755 6756 @article{Herlihy91, 6757 keywords = {linearization, wait-free synchronization}, 6758 contributer = {pabuhr@plg}, 6759 author = {Maurice Herlihy}, 6760 title = {Wait-free Synchronization}, 6761 journal = toplas, 6762 volume = {13}, 6763 number = {1}, 6764 month = jan, 6765 year = 1991, 6766 pages = {124--149}, 6767 numpages = {26}, 6768 publisher = {ACM}, 6769 address = {New York, NY, USA}, 6770 } 6771 6772 @techreport{Moss90, 6773 keywords = {Swizzling, database}, 6774 contributer = {akgoel@plg}, 6775 author = {J. Moss}, 6776 title = {Working with Persistent Objects: To Swizzle or Not to Swizzle}, 6777 institution = {CS Department, University of Massachusetts}, 6778 address = {}, 6779 number = {CS 90-38}, 6780 month = may, 6781 year = 1990, 6782 } 6783 6784 @inproceedings{Str:oop, 6785 keywords = { }, 6786 contributer = {pabuhr@plg}, 6787 author = {Bjarne Stroustrup}, 6788 title = {What is ``Object-Oriented Programming''?}, 6789 booktitle = {Proceedings of the First European Conference on Object Oriented Programming}, 6790 month = jun, 6791 year = 1987 6792 } 6793 6794 @misc{Stroustrup:overloading, 6795 keywords = {operator overloading}, 6796 contributer = {pabuhr@plg}, 6797 author = {Bjarne Stroustrup}, 6798 title = {Why can't I overload dot, ::, sizeof, etc.?}, 6799 month = oct, 6800 year = 2007, 6801 howpublished= {{\small\textsf{http://\-www.research.att.com/\-bs/\-bs\_faq2.html\-\#overload-dot}}}, 6802 } 6803 6804 @techreport{Gray85, 6805 keywords = {fault-tolerant system}, 6806 contributer = {pabuhr@plg}, 6807 author = {Jim Gray}, 6808 title = {Why Do Computers Stop and What Can Be Done About It?}, 6809 institution = {Tandem Computers}, 6810 number = {85.7 PN87614}, 6811 month = jun, 6812 year = 1985, 6813 note = {\textsf{http://www.hpl.hp.com/\-techreports/\-tandem/\-TR-85.7.pdf}}, 6814 } 6815 6816 % X 6817 6818 % Y 6819 6820 % Z 6821 6822 % Cross-referenced entries: 6823 6824 % O 6825 6826 % The SIGPLAN Notices issue should be in a note field, but notes are 6827 % inherited by all refering entries, instead of being held in the 6828 % cross-referenced entry. Putting it in "publisher" is a kludge, but it 6829 % works. 6830 @proceedings{OOPSLA86, 6831 contributer = {gjditchfield@plg}, 6832 title = {{OOPSLA} '86 Conference Proceedings}, 6833 booktitle = {{OOPSLA} '86 Conference Proceedings}, 6834 year = 1986, 6835 editor = {Norman Meyrowitz}, 6836 publisher = sigplan # " 21(11)", 6837 organization= {Association for Computing Machinery}, 6838 address = {Portland, Oregon}, 6839 month = sep # { 29} 6840 } 6841 6842 @proceedings{OOPSLA87, 6843 contributer = {gjditchfield@plg}, 6844 title = {{OOPSLA} '87 Conference Proceedings}, 6845 booktitle = {{OOPSLA} '87 Conference Proceedings}, 6846 year = 1987, 6847 editor = {Norman Meyrowitz}, 6848 publisher = sigplan # " 22(12)", 6849 organization= {Association for Computing Machinery}, 6850 address = {Orlando, Florida}, 6851 month = oct # { 4--8} 6852 } 6853 6854 @proceedings{OOPSLA88, 6855 contributer = {gjditchfield@plg}, 6856 title = {{OOPSLA} '88 Conference Proceedings}, 6857 booktitle = {{OOPSLA} '88 Conference Proceedings}, 6858 year = 1988, 6859 editor = {Norman Meyrowitz}, 6860 publisher = sigplan # " 23(11)", 6861 organization= {Association for Computing Machinery}, 6862 address = {San Diego, California}, 6863 month = sep # { 25--30} 6864 } 6865 6866 @proceedings{OOPSLA89, 6867 contributer = {gjditchfield@plg}, 6868 title = {{OOPSLA} '89 Conference Proceedings}, 6869 booktitle = {{OOPSLA} '89 Conference Proceedings}, 6870 year = 1989, 6871 editor = {Norman Meyrowitz}, 6872 publisher = sigplan # " 24(10)", 6873 organization= {Association for Computing Machinery}, 6874 address = {New Orleans, Louisiana}, 6875 month = oct # { 1--6} 6876 } 6877 6878 @proceedings{OOPSLA90, 6879 contributer = {gjditchfield@plg}, 6880 title = {{OOPSLA/ECOOP} '90 Conference Proceedings}, 6881 booktitle = {{OOPSLA} '90 Conference Proceedings}, 6882 year = 1990, 6883 editor = {Norman Meyrowitz}, 6884 publisher = sigplan # " 25(10)", 6885 organization= {Association for Computing Machinery}, 6886 address = {Ottawa, Canada}, 6887 month = oct # { 21--25} 6888 } 6889 6890 @proceedings{OOPSLA91, 6891 contributer = {gjditchfield@plg}, 6892 title = {{OOPSLA} '91 Conference Proceedings}, 6893 booktitle = {{OOPSLA} '91 Conference Proceedings}, 6894 year = 1991, 6895 editor = {Andreas Paepcke}, 6896 publisher = sigplan # " 26(11)", 6897 organization= {Association for Computing Machinery}, 6898 address = {Phoenix, Arizona}, 6899 month = oct # { 6--11} 6900 } 1 /usr/local/bibliographies/pl.bib -
Property mode
changed from
-
doc/refrat/Makefile
rf80e0218 r1b5c81ed 1 1 ## Define the appropriate configuration variables. 2 2 3 TeXLIB = .:../ LaTeXmacros:../LaTeXmacros/listings:../LaTeXmacros/enumitem:../bibliography/:4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error3 TeXLIB = .:../bibliography/:../LaTeXmacros/: 4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex 5 5 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex 6 6 -
doc/refrat/refrat.tex
rf80e0218 r1b5c81ed 11 11 %% Created On : Wed Apr 6 14:52:25 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Sat Jun 18 19:21:30201614 %% Update Count : 7413 %% Last Modified On : Sat Apr 9 10:19:12 2016 14 %% Update Count : 8 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 17 17 % requires tex packages: texlive-base texlive-latex-base tex-common texlive-humanities texlive-latex-extra texlive-fonts-recommended 18 19 % inline code ©...© (copyright symbol) emacs: C-q M-)20 % red highlighting ®...® (registered trademark symbol) emacs: C-q M-.21 % blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_22 % green highlighting ¢...¢ (cent symbol) emacs: C-q M-"23 % LaTex escape §...§ (section symbol) emacs: C-q M-'24 % keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^25 % math escape $...$ (dollar symbol)26 18 27 19 \documentclass[openright,twoside]{report} … … 29 21 30 22 % Latex packages used in the document. 31 \usepackage[T1]{fontenc} % allow Latin1 (extended ASCII) characters 32 \usepackage{textcomp} 33 \usepackage[latin1]{inputenc} 34 \usepackage{fullpage,times,comment} 35 \usepackage{epic,eepic} 36 \usepackage{upquote} % switch curled `'" to straight 23 \usepackage{fullpage,times} 37 24 \usepackage{xspace} 38 \usepackage{varioref} % extended references39 \usepackage{listings} % format program code40 \usepackage [flushmargin]{footmisc} % support label/reference in footnote41 \usepackage{latexsym} % \Box glyph25 \usepackage{varioref} 26 \usepackage{listings} 27 \usepackage{comment} 28 \usepackage{latexsym} % \Box 42 29 \usepackage{mathptmx} % better math font with "times" 43 \usepackage[usenames]{color}44 30 \usepackage[pagewise]{lineno} 45 31 \renewcommand{\linenumberfont}{\scriptsize\sffamily} 46 \input{common} % bespoke macros used in the document47 32 \usepackage[dvips,plainpages=false,pdfpagelabels,pdfpagemode=UseNone,colorlinks=true,pagebackref=true,linkcolor=blue,citecolor=blue,urlcolor=blue,pagebackref=true,breaklinks=true]{hyperref} 48 33 \usepackage{breakurl} … … 51 36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 52 37 53 % Names used in the document. 54 55 \newcommand{\Version}{1.0.0} 56 57 \newcommand{\Textbf}[2][red]{{\color{#1}{\textbf{#2}}}} 58 \newcommand{\Emph}[2][red]{{\color{#1}\textbf{\emph{#2}}}} 59 \newcommand{\R}[1]{\Textbf{#1}} 60 \newcommand{\B}[1]{{\Textbf[blue]{#1}}} 61 \newcommand{\G}[1]{{\Textbf[OliveGreen]{#1}}} 38 % Bespoke macros used in the document. 39 \input{common} 62 40 63 41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 81 59 }% author 82 60 \date{ 83 DRAFT \\ 84 \today 61 DRAFT\\\today 85 62 }% date 86 63 … … 146 123 \subsection{Scopes of identifiers}\index{scopes} 147 124 148 \CFA's scope rules differ from C's in one major respect: a declaration of an identifier may overload\index{overloading} outer declarations of lexically identical identifiers in the same \Index{name space}, instead of hiding them. 149 The outer declaration is hidden if the two declarations have \Index{compatible type}, or if one declares an array type and the other declares a pointer type and the element type and pointed-at type are compatible, or if one has function type and the other is a pointer to a compatible function type, or if one declaration is a ©type©\use{type} or ©typedef©\use{typedef} declaration and the other is not. 150 The outer declaration becomes \Index{visible} when the scope of the inner declaration terminates. 151 \begin{rationale} 152 Hence, a \CFA program can declare an ©int v© and a ©float v© in the same scope; 125 \CFA's scope rules differ from C's in one major respect: a declaration of an identifier may overload\index{overloading} outer declarations of lexically identical identifiers in the same 126 \Index{name space}, instead of hiding them. 127 The outer declaration is hidden if the two declarations have \Index{compatible type}, or if one declares an array type and the other declares a pointer type and the element type and pointed-at type are compatible, or if one has function type and the other is a pointer to a compatible function type, or if one declaration is a \lstinline$type$\use{type} or 128 \lstinline$typedef$\use{typedef} declaration and the other is not. The outer declaration becomes 129 \Index{visible} when the scope of the inner declaration terminates. 130 \begin{rationale} 131 Hence, a \CFA program can declare an \lstinline$int v$ and a \lstinline$float v$ in the same scope; 153 132 a {\CC} program can not. 154 133 \end{rationale} … … 159 138 160 139 \CFA's linkage rules differ from C's in only one respect: instances of a particular identifier with external or internal linkage do not necessarily denote the same object or function. 161 Instead, in the set of translation units and libraries that constitutes an entire program, any two instances of a particular identifier with \Index{external linkage} denote the same object or function if they have \Index{compatible type}s, or if one declares an array type and the other declares a pointer type and the element type and pointed-at type are compatible, or if one has function type and the other is a pointer to a compatible function type. 140 Instead, in the set of translation units and libraries that constitutes an entire program, any two instances of a particular identifier with \Index{external linkage} denote the same object or function if they have 141 \Index{compatible type}s, or if one declares an array type and the other declares a pointer type and the element type and pointed-at type are compatible, or if one has function type and the other is a pointer to a compatible function type. 162 142 Within one translation unit, each instance of an identifier with \Index{internal linkage} denotes the same object or function in the same circumstances. 163 143 Identifiers with \Index{no linkage} always denote unique entities. 164 144 \begin{rationale} 165 A \CFA program can declare an ©extern int v© and an ©extern float v©;145 A \CFA program can declare an \lstinline$extern int v$ and an \lstinline$extern float v$; 166 146 a C program cannot. 167 147 \end{rationale} … … 186 166 \end{lstlisting} 187 167 188 The type parameters in an instantiation of a generic type must satisfy any constraints in the forall specifier on the type generator declaration, e.g., ©sumable©.168 The type parameters in an instantiation of a generic type must satisfy any constraints in the forall specifier on the type generator declaration, e.g., \lstinline$sumable$. 189 169 The instantiation then has the semantics that would result if the type parameters were substituted into the type generator declaration by macro substitution. 190 170 … … 234 214 \CFA defines situations where values of one type are automatically converted to another type. 235 215 These conversions are called \define{implicit conversion}s. 236 The programmer can request \define{explicit conversion}s using cast expressions. 216 The programmer can request 217 \define{explicit conversion}s using cast expressions. 237 218 238 219 … … 246 227 In \CFA, these conversions play a role in overload resolution, and collectively are called the \define{safe arithmetic conversion}s. 247 228 248 Let ©int$_r$© and ©unsigned$_r$©be the signed and unsigned integer types with integer conversion rank\index{integer conversion rank}\index{rank|see{integer conversion rank}} $r$.249 Let ©unsigned$_{mr}$©be the unsigned integer type with maximal rank.229 Let \(int_r\) and \(unsigned_r\) be the signed and unsigned integer types with integer conversion rank\index{integer conversion rank}\index{rank|see{integer conversion rank}} $r$. 230 Let \(unsigned_{mr}\) be the unsigned integer type with maximal rank. 250 231 251 232 The following conversions are \emph{direct} safe arithmetic conversions. … … 254 235 The \Index{integer promotion}s. 255 236 \item 256 For every rank $r$ greater than or equal to the rank of ©int©, conversion from ©int$_r$© to ©unsigned$_r$©.257 \item 258 For every rank $r$ greater than or equal to the rank of ©int©, where ©int$_{r+1}$© exists and can represent all values of ©unsigned$_r$©, conversion from ©unsigned$_r$© to ©int$_{r+1}$©.259 \item 260 Conversion from ©unsigned$_{mr}$© to ©float©.237 For every rank $r$ greater than or equal to the rank of \lstinline$int$, conversion from \(int_r\) to \(unsigned_r\). 238 \item 239 For every rank $r$ greater than or equal to the rank of \lstinline$int$, where \(int_{r+1}\) exists and can represent all values of \(unsigned_r\), conversion from \(unsigned_r\) to \(int_{r+1}\). 240 \item 241 Conversion from \(unsigned_{mr}\) to \lstinline$float$. 261 242 \item 262 243 Conversion from an enumerated type to its compatible integer type. 263 244 \item 264 Conversion from ©float© to ©double©, and from ©double© to ©long double©.265 \item 266 Conversion from ©float _Complex© to ©double _Complex©, and from ©double _Complex© to ©long double _Complex©.245 Conversion from \lstinline$float$ to \lstinline$double$, and from \lstinline$double$ to \lstinline$long double$. 246 \item 247 Conversion from \lstinline$float _Complex$ to \lstinline$double _Complex$, and from \lstinline$double _Complex$ to \lstinline$long double _Complex$. 267 248 \begin{sloppypar} 268 249 \item 269 Conversion from ©float _Imaginary© to ©double _Imaginary©, and from ©double _Imaginary© to ©long double _Imaginary©, if the implementation supports imaginary types.250 Conversion from \lstinline$float _Imaginary$ to \lstinline$double _Imaginary$, and from \lstinline$double _Imaginary$ to \lstinline$long double$ \lstinline$_Imaginary$, if the implementation supports imaginary types. 270 251 \end{sloppypar} 271 252 \end{itemize} 272 253 273 If type ©T© can be converted to type ©U© by a safe direct arithmetic conversion and type ©U© can be converted to type ©V© by a safe arithmetic conversion, then the conversion from ©T© to type ©V©is an \emph{indirect} safe arithmetic conversion.254 If type \lstinline$T$ can be converted to type \lstinline$U$ by a safe direct arithmetic conversion and type \lstinline$U$ can be converted to type \lstinline$V$ by a safe arithmetic conversion, then the conversion from \lstinline$T$ to type \lstinline$V$ is an \emph{indirect} safe arithmetic conversion. 274 255 275 256 \begin{rationale} … … 285 266 \label{anon-conv} 286 267 287 If an expression's type is a pointer to a structure or union type that has a member that is an \Index{anonymous structure} or an \Index{anonymous union}, it can be implicitly converted\index{implicit conversion} to a pointer to the anonymous structure's or anonymous union's type. 268 If an expression's type is a pointer to a structure or union type that has a member that is an 269 \Index{anonymous structure} or an \Index{anonymous union}, it can be implicitly converted\index{implicit conversion} to a pointer to the anonymous structure's or anonymous union's type. 288 270 The result of the conversion is a pointer to the member. 289 271 … … 293 275 int x, y; 294 276 }; 295 void move_by( struct point * p1, struct point * p2 ) { §\impl{move_by}§277 void move_by( struct point * p1, struct point * p2 ) {@\impl{move_by}@ 296 278 p1->x += p2.x; 297 279 p1->y += p2.y; … … 303 285 move_to( &cp1, &cp2 ); 304 286 \end{lstlisting} 305 Thanks to implicit conversion, the two arguments that ©move_by()© receives are pointers to ©cp1©'s second member and ©cp2©'s second member. 287 Thanks to implicit conversion, the two arguments that \lstinline$move_by()$ receives are pointers to 288 \lstinline$cp1$'s second member and \lstinline$cp2$'s second member. 306 289 307 290 … … 345 328 a direct safe arithmetic conversion; 346 329 \item 347 from any object type or incomplete type to ©void©;348 \item 349 from a pointer to any non- ©void© type to a pointer to ©void©;330 from any object type or incomplete type to \lstinline$void$; 331 \item 332 from a pointer to any non-\lstinline$void$ type to a pointer to \lstinline$void$; 350 333 \item 351 334 from a pointer to any type to a pointer to a more qualified version of the type\index{qualified type}; … … 358 341 Conversions that are not safe conversions are \define{unsafe conversion}s. 359 342 \begin{rationale} 360 As in C, there is an implicit conversion from ©void *©to any pointer type.343 As in C, there is an implicit conversion from \lstinline$void *$ to any pointer type. 361 344 This is clearly dangerous, and {\CC} does not have this implicit conversion. 362 345 \CFA\index{deficiencies!void * conversion} keeps it, in the interest of remaining as pure a superset of C as possible, but discourages it by making it unsafe. … … 384 367 \begin{itemize} 385 368 \item 386 The cost of an implicit conversion from ©int© to ©long© is 1. 387 The cost of an implicit conversion from ©long© to ©double© is 3, because it is defined in terms of conversions from ©long© to ©unsigned long©, then to ©float©, and then to ©double©. 388 389 \item 390 If ©int© can represent all the values of ©unsigned short©, then the cost of an implicit conversion from ©unsigned short© to ©unsigned© is 2: ©unsigned short© to ©int© to ©unsigned©. 391 Otherwise, ©unsigned short© is converted directly to ©unsigned©, and the cost is 1. 392 393 \item 394 If ©long© can represent all the values of ©unsigned©, then the conversion cost of ©unsigned© to ©long© is 1. 369 The cost of an implicit conversion from \lstinline$int$ to \lstinline$long$ is 1. 370 The cost of an implicit conversion from \lstinline$long$ to \lstinline$double$ is 3, because it is defined in terms of conversions from \lstinline$long$ to \lstinline$unsigned long$, then to \lstinline$float$, and then to \lstinline$double$. 371 372 \item 373 If \lstinline$int$ can represent all the values of \lstinline$unsigned short$, then the cost of an implicit conversion from \lstinline$unsigned short$ to \lstinline$unsigned$ is 2: 374 \lstinline$unsigned short$ to \lstinline$int$ to \lstinline$unsigned$. 375 Otherwise, \lstinline$unsigned short$ is converted directly to \lstinline$unsigned$, and the cost is 1. 376 377 \item 378 If \lstinline$long$ can represent all the values of \lstinline$unsigned$, then the conversion cost of \lstinline$unsigned$ to \lstinline$long$ is 1. 395 379 Otherwise, the conversion is an unsafe conversion, and its conversion cost is undefined. 396 380 \end{itemize} 397 381 398 399 382 \section{Lexical elements} 400 401 402 383 \subsection{Keywords} 403 404 384 \begin{syntax} 405 385 \oldlhs{keyword} 406 \rhs ©forall© 407 \rhs ©lvalue© 408 \rhs ©trait© 409 \rhs ©dtype© 410 \rhs ©ftype© 411 \rhs ©otype© 386 \rhs \lstinline$forall$ 387 \rhs \lstinline$lvalue$ 388 \rhs \lstinline$trait$ 389 \rhs \lstinline$dtype$ 390 \rhs \lstinline$ftype$ 391 \rhs \lstinline$type$ 412 392 \end{syntax} 413 393 … … 416 396 417 397 \CFA allows operator \Index{overloading} by associating operators with special function identifiers. 418 Furthermore, the constants `` ©0©'' and ``©1©'' have special status for many of C's data types (and for many programmer-defined data types as well), so \CFA treats them as overloadable identifiers.398 Furthermore, the constants ``\lstinline$0$'' and ``\lstinline$1$'' have special status for many of C's data types (and for many programmer-defined data types as well), so \CFA treats them as overloadable identifiers. 419 399 Programmers can use these identifiers to declare functions and objects that implement operators and constants for their own types. 420 400 … … 425 405 \begin{syntax} 426 406 \oldlhs{identifier} 427 \rhs ©0©428 \rhs ©1©407 \rhs \lstinline$0$ 408 \rhs \lstinline$1$ 429 409 \end{syntax} 430 410 431 \index{constant identifiers}\index{identifiers!for constants} The tokens `` ©0©''\impl{0} and ``©1©''\impl{1} are identifiers.411 \index{constant identifiers}\index{identifiers!for constants} The tokens ``\lstinline$0$''\impl{0} and ``\lstinline$1$''\impl{1} are identifiers. 432 412 No other tokens defined by the rules for integer constants are considered to be identifiers. 433 413 \begin{rationale} 434 Why `` ©0©'' and ``©1©''? Those integers have special status in C.414 Why ``\lstinline$0$'' and ``\lstinline$1$''? Those integers have special status in C. 435 415 All scalar types can be incremented and decremented, which is defined in terms of adding or subtracting 1. 436 The operations `` ©&&©'', ``©||©'', and ``©!©'' can be applied to any scalar arguments, and are defined in terms of comparison against 0.416 The operations ``\lstinline$&&$'', ``\lstinline$||$'', and ``\lstinline$!$'' can be applied to any scalar arguments, and are defined in terms of comparison against 0. 437 417 A \nonterm{constant-expression} that evaluates to 0 is effectively compatible with every pointer type. 438 418 439 419 In C, the integer constants 0 and 1 suffice because the integer promotion rules can convert them to any arithmetic type, and the rules for pointer expressions treat constant expressions evaluating to 0 as a special case. 440 420 However, user-defined arithmetic types often need the equivalent of a 1 or 0 for their functions or operators, polymorphic functions often need 0 and 1 constants of a type matching their polymorphic parameters, and user-defined pointer-like types may need a null value. 441 Defining special constants for a user-defined type is more efficient than defining a conversion to the type from ©_Bool©.442 443 Why \emph{just} `` ©0©'' and ``©1©''? Why not other integers? No other integers have special status in C.444 A facility that let programmers declare specific constants---`` ©const Rational 12©'', for instance---would not be much of an improvement.421 Defining special constants for a user-defined type is more efficient than defining a conversion to the type from \lstinline$_Bool$. 422 423 Why \emph{just} ``\lstinline$0$'' and ``\lstinline$1$''? Why not other integers? No other integers have special status in C. 424 A facility that let programmers declare specific constants---``\lstinline$const Rational 12$'', for instance---would not be much of an improvement. 445 425 Some facility for defining the creation of values of programmer-defined types from arbitrary integer tokens would be needed. 446 426 The complexity of such a feature doesn't seem worth the gain. … … 458 438 \begin{tabular}[t]{ll} 459 439 %identifier & operation \\ \hline 460 ©?[?]©& subscripting \impl{?[?]}\\461 ©?()©& function call \impl{?()}\\462 ©?++©& postfix increment \impl{?++}\\463 ©?--©& postfix decrement \impl{?--}\\464 ©++?©& prefix increment \impl{++?}\\465 ©--?©& prefix decrement \impl{--?}\\466 ©*?©& dereference \impl{*?}\\467 ©+?©& unary plus \impl{+?}\\468 ©-?©& arithmetic negation \impl{-?}\\469 ©~?©& bitwise negation \impl{~?}\\470 ©!?©& logical complement \impl{"!?}\\471 ©?*?©& multiplication \impl{?*?}\\472 ©?/?©& division \impl{?/?}\\440 \lstinline$?[?]$ & subscripting \impl{?[?]}\\ 441 \lstinline$?()$ & function call \impl{?()}\\ 442 \lstinline$?++$ & postfix increment \impl{?++}\\ 443 \lstinline$?--$ & postfix decrement \impl{?--}\\ 444 \lstinline$++?$ & prefix increment \impl{++?}\\ 445 \lstinline$--?$ & prefix decrement \impl{--?}\\ 446 \lstinline$*?$ & dereference \impl{*?}\\ 447 \lstinline$+?$ & unary plus \impl{+?}\\ 448 \lstinline$-?$ & arithmetic negation \impl{-?}\\ 449 \lstinline$~?$ & bitwise negation \impl{~?}\\ 450 \lstinline$!?$ & logical complement \impl{"!?}\\ 451 \lstinline$?*?$ & multiplication \impl{?*?}\\ 452 \lstinline$?/?$ & division \impl{?/?}\\ 473 453 \end{tabular}\hfil 474 454 \begin{tabular}[t]{ll} 475 455 %identifier & operation \\ \hline 476 ©?%?©& remainder \impl{?%?}\\477 ©?+?©& addition \impl{?+?}\\478 ©?-?©& subtraction \impl{?-?}\\479 ©?<<?©& left shift \impl{?<<?}\\480 ©?>>?©& right shift \impl{?>>?}\\481 ©?<?©& less than \impl{?<?}\\482 ©?<=?©& less than or equal \impl{?<=?}\\483 ©?>=?©& greater than or equal \impl{?>=?}\\484 ©?>?©& greater than \impl{?>?}\\485 ©?==?©& equality \impl{?==?}\\486 ©?!=?©& inequality \impl{?"!=?}\\487 ©?&?©& bitwise AND \impl{?&?}\\456 \lstinline$?%?$ & remainder \impl{?%?}\\ 457 \lstinline$?+?$ & addition \impl{?+?}\\ 458 \lstinline$?-?$ & subtraction \impl{?-?}\\ 459 \lstinline$?<<?$ & left shift \impl{?<<?}\\ 460 \lstinline$?>>?$ & right shift \impl{?>>?}\\ 461 \lstinline$?<?$ & less than \impl{?<?}\\ 462 \lstinline$?<=?$ & less than or equal \impl{?<=?}\\ 463 \lstinline$?>=?$ & greater than or equal \impl{?>=?}\\ 464 \lstinline$?>?$ & greater than \impl{?>?}\\ 465 \lstinline$?==?$ & equality \impl{?==?}\\ 466 \lstinline$?!=?$ & inequality \impl{?"!=?}\\ 467 \lstinline$?&?$ & bitwise AND \impl{?&?}\\ 488 468 \end{tabular}\hfil 489 469 \begin{tabular}[t]{ll} 490 470 %identifier & operation \\ \hline 491 ©?^?©& exclusive OR \impl{?^?}\\492 ©?|?©& inclusive OR \impl{?"|?}\\493 ©?=?©& simple assignment \impl{?=?}\\494 ©?*=?©& multiplication assignment \impl{?*=?}\\495 ©?/=?©& division assignment \impl{?/=?}\\496 ©?%=?©& remainder assignment \impl{?%=?}\\497 ©?+=?©& addition assignment \impl{?+=?}\\498 ©?-=?©& subtraction assignment \impl{?-=?}\\499 ©?<<=?©& left-shift assignment \impl{?<<=?}\\500 ©?>>=?©& right-shift assignment \impl{?>>=?}\\501 ©?&=?©& bitwise AND assignment \impl{?&=?}\\502 ©?^=?©& exclusive OR assignment \impl{?^=?}\\503 ©?|=?©& inclusive OR assignment \impl{?"|=?}\\471 \lstinline$?^?$ & exclusive OR \impl{?^?}\\ 472 \lstinline$?|?$ & inclusive OR \impl{?"|?}\\ 473 \lstinline$?=?$ & simple assignment \impl{?=?}\\ 474 \lstinline$?*=?$ & multiplication assignment \impl{?*=?}\\ 475 \lstinline$?/=?$ & division assignment \impl{?/=?}\\ 476 \lstinline$?%=?$ & remainder assignment \impl{?%=?}\\ 477 \lstinline$?+=?$ & addition assignment \impl{?+=?}\\ 478 \lstinline$?-=?$ & subtraction assignment \impl{?-=?}\\ 479 \lstinline$?<<=?$ & left-shift assignment \impl{?<<=?}\\ 480 \lstinline$?>>=?$ & right-shift assignment \impl{?>>=?}\\ 481 \lstinline$?&=?$ & bitwise AND assignment \impl{?&=?}\\ 482 \lstinline$?^=?$ & exclusive OR assignment \impl{?^=?}\\ 483 \lstinline$?|=?$ & inclusive OR assignment \impl{?"|=?}\\ 504 484 \end{tabular} 505 485 \hfil … … 516 496 517 497 \begin{rationale} 518 The use of `` ©?©'' in identifiers means that some C programs are not \CFA programs. For instance, the sequence of characters ``©(i < 0)?--i:i©'' is legal in a C program, but a519 \CFA compiler detects a syntax error because it treats `` ©?--©'' as an identifier, not as the two tokens ``©?©'' and ``©--©''.498 The use of ``\lstinline$?$'' in identifiers means that some C programs are not \CFA programs. For instance, the sequence of characters ``\lstinline$(i < 0)?--i:i$'' is legal in a C program, but a 499 \CFA compiler detects a syntax error because it treats ``\lstinline$?--$'' as an identifier, not as the two tokens ``\lstinline$?$'' and ``\lstinline$--$''. 520 500 \end{rationale} 521 501 … … 524 504 \begin{itemize} 525 505 \item 526 The logical operators ``©&&©'' and ``©||©'', and the conditional operator ``©?:©''. 506 The logical operators ``\lstinline$&&$'' and ``\lstinline$||$'', and the conditional operator 507 ``\lstinline$?:$''. 527 508 These operators do not always evaluate their operands, and hence can not be properly defined by functions unless some mechanism like call-by-name is added to the language. 528 Note that the definitions of `` ©&&©'' and ``©||©'' say that they work by checking that their arguments are unequal to 0, so defining ``©!=©'' and ``©0©'' for user-defined types is enough to allow them to be used in logical expressions.509 Note that the definitions of ``\lstinline$&&$'' and ``\lstinline$||$'' say that they work by checking that their arguments are unequal to 0, so defining ``\lstinline$!=$'' and ``\lstinline$0$'' for user-defined types is enough to allow them to be used in logical expressions. 529 510 530 511 \item … … 535 516 \item 536 517 The ``address of'' operator. 537 It would seem useful to define a unary `` ©&©'' operator that returns values of some programmer-defined pointer-like type.518 It would seem useful to define a unary ``\lstinline$&$'' operator that returns values of some programmer-defined pointer-like type. 538 519 The problem lies with the type of the operator. 539 Consider the expression ``©p = &x©'', where ©x© is of type ©T© and ©p© has the programmer-defined type ©T_ptr©. 540 The expression might be treated as a call to the unary function ``©&?©''. 541 Now what is the type of the function's parameter? It can not be ©T©, because then ©x© would be passed by value, and there is no way to create a useful pointer-like result from a value. 542 Hence the parameter must have type ©T *©. 543 But then the expression must be rewritten as ``©p = &?( &x )©'' 520 Consider the expression ``\lstinline$p = &x$'', where \lstinline$x$ is of type 521 \lstinline$T$ and \lstinline$p$ has the programmer-defined type \lstinline$T_ptr$. 522 The expression might be treated as a call to the unary function ``\lstinline$&?$''. 523 Now what is the type of the function's parameter? It can not be \lstinline$T$, because then \lstinline$x$ would be passed by value, and there is no way to create a useful pointer-like result from a value. 524 Hence the parameter must have type \lstinline$T *$. 525 But then the expression must be rewritten as ``\lstinline$p = &?( &x )$'' 544 526 ---which doesn't seem like progress! 545 527 546 528 The rule for address-of expressions would have to be something like ``keep applying address-of functions until you get one that takes a pointer argument, then use the built-in operator and stop''. 547 It seems simpler to define a conversion function from ©T *© to ©T_ptr©.548 549 \item 550 The ©sizeof©operator.529 It seems simpler to define a conversion function from \lstinline$T *$ to \lstinline$T_ptr$. 530 531 \item 532 The \lstinline$sizeof$ operator. 551 533 It is already defined for every object type, and intimately tied into the language's storage allocation model. 552 534 Redefining it seems pointless. 553 535 554 536 \item 555 The ``member of'' operators `` ©.©'' and ``©->©''.537 The ``member of'' operators ``\lstinline$.$'' and ``\lstinline$->$''. 556 538 These are not really infix operators, since their right ``operand'' is not a value or object. 557 539 … … 590 572 The ``fewest unsafe conversions'' rule ensures that the usual conversions are done, if possible. 591 573 The ``lowest total expression cost'' rule chooses the proper common type. 592 The odd-looking ``highest argument conversion cost'' rule ensures that, when unary expressions must be converted, conversions of function results are preferred to conversion of function arguments: ©(double)-i© will be preferred to ©-(double)i©.574 The odd-looking ``highest argument conversion cost'' rule ensures that, when unary expressions must be converted, conversions of function results are preferred to conversion of function arguments: \lstinline$(double)-i$ will be preferred to \lstinline$-(double)i$. 593 575 594 576 The ``least polymorphic'' rule reduces the number of polymorphic function calls, since such functions are presumably more expensive than monomorphic functions and since the more specific function is presumably more appropriate. 595 It also gives preference to monomorphic values (such as the ©int© ©0©) over polymorphic values (such as the \Index{null pointer} ©0©\use{0}). 577 It also gives preference to monomorphic values (such as the 578 \lstinline$int$ \lstinline$0$) over polymorphic values (such as the \Index{null pointer} 579 \lstinline$0$\use{0}). 596 580 However, interpretations that call polymorphic functions are preferred to interpretations that perform unsafe conversions, because those conversions potentially lose accuracy or violate strong typing. 597 581 … … 613 597 \begin{rationale} 614 598 Predefined functions and constants have internal linkage because that simplifies optimization in traditional compile-and-link environments. 615 For instance, `` ©an_int + an_int©'' is equivalent to ``©?+?(an_int, an_int)©''.599 For instance, ``\lstinline$an_int + an_int$'' is equivalent to ``\lstinline$?+?(an_int, an_int)$''. 616 600 If integer addition has not been redefined in the current scope, a compiler can generate code to perform the addition directly. 617 601 If predefined functions had external linkage, this optimization would be difficult. … … 639 623 \rhs \nonterm{constant} 640 624 \rhs \nonterm{string-literal} 641 \rhs ©(© \nonterm{expression} ©)©625 \rhs \lstinline$($ \nonterm{expression} \lstinline$)$ 642 626 \rhs \nonterm{generic-selection} 643 627 \end{syntax} … … 645 629 \predefined 646 630 \begin{lstlisting} 647 const int 1; §\use{1}§648 const int 0; §\use{0}§631 const int 1;@\use{1}@ 632 const int 0;@\use{0}@ 649 633 forall( dtype DT ) DT * const 0; 650 634 forall( ftype FT ) FT * const 0; … … 655 639 656 640 A \nonterm{constant} or \nonterm{string-literal} has one valid interpretation, which has the type and value defined by {\c11}. 657 The predefined integer identifiers `` ©1©'' and ``©0©'' have the integer values 1 and 0, respectively.658 The other two predefined `` ©0©'' identifiers are bound to polymorphic pointer values that, when specialized\index{specialization} with a data type or function type respectively, produce a null pointer of that type.641 The predefined integer identifiers ``\lstinline$1$'' and ``\lstinline$0$'' have the integer values 1 and 0, respectively. 642 The other two predefined ``\lstinline$0$'' identifiers are bound to polymorphic pointer values that, when specialized\index{specialization} with a data type or function type respectively, produce a null pointer of that type. 659 643 660 644 A parenthesised expression has the same interpretations as the contained \nonterm{expression}. 661 645 662 646 \examples 663 The expression ©(void *)0©\use{0} specializes the (polymorphic) null pointer to a null pointer to ©void©. ©(const void *)0© does the same, and also uses a safe conversion from ©void *© to ©const void *©. 664 In each case, the null pointer conversion is better\index{best valid interpretations} than the unsafe conversion of the integer ©0© to a pointer. 647 The expression \lstinline$(void *)0$\use{0} specializes the (polymorphic) null pointer to a null pointer to \lstinline$void$. \lstinline$(const void *)0$ does the same, and also uses a safe conversion from \lstinline$void *$ to \lstinline$const void *$. 648 In each case, the null pointer conversion is better\index{best valid interpretations} than the unsafe conversion of the integer 649 \lstinline$0$ to a pointer. 665 650 666 651 \begin{rationale} … … 668 653 669 654 \CFA does not have C's concept of ``null pointer constants'', which are not typed values but special strings of tokens. 670 The C token ``©0©'' is an expression of type ©int© with the value ``zero'', and it \emph{also} is a null pointer constant. 671 Similarly, ``©(void *)0© is an expression of type ©(void *)© whose value is a null pointer, and it also is a null pointer constant. 672 However, in C, ``©(void *)(void *)0©'' is 655 The C token ``\lstinline$0$'' is an expression of type \lstinline$int$ with the value ``zero'', and it \emph{also} is a null pointer constant. 656 Similarly, 657 ``\lstinline$(void *)0$ is an expression of type \lstinline$(void *)$ whose value is a null pointer, and it also is a null pointer constant. 658 However, in C, ``\lstinline$(void *)(void *)0$'' is 673 659 \emph{not} a null pointer constant, even though it is null-valued, a pointer, and constant! The semantics of C expressions contain many special cases to deal with subexpressions that are null pointer constants. 674 660 … … 677 663 \begin{lstlisting} 678 664 forall( dtype DT ) DT * const 0; 679 \end{lstlisting} means that ©0©is a polymorphic object, and contains a value that can have \emph{any} pointer-to-object type or pointer-to-incomplete type.665 \end{lstlisting} means that \lstinline$0$ is a polymorphic object, and contains a value that can have \emph{any} pointer-to-object type or pointer-to-incomplete type. 680 666 The only such value is the null pointer. 681 667 Therefore the type \emph{alone} is enough to identify a null pointer. … … 687 673 688 674 \constraints The best interpretation of the controlling expression shall be unambiguous\index{ambiguous interpretation}, and shall have type compatible with at most one of the types named in its generic association list. 689 If a generic selection has no ©default©generic association, the best interpretation of its controlling expression shall have type compatible with exactly one of the types named in its generic association list.675 If a generic selection has no \lstinline$default$ generic association, the best interpretation of its controlling expression shall have type compatible with exactly one of the types named in its generic association list. 690 676 691 677 \semantics … … 698 684 \lhs{postfix-expression} 699 685 \rhs \nonterm{primary-expression} 700 \rhs \nonterm{postfix-expression} ©[© \nonterm{expression} ©]©701 \rhs \nonterm{postfix-expression} ©(©702 \nonterm{argument-expression-list}\opt ©)©703 \rhs \nonterm{postfix-expression} ©.©\nonterm{identifier}704 \rhs \nonterm{postfix-expression} ©->©\nonterm{identifier}705 \rhs \nonterm{postfix-expression} ©++©706 \rhs \nonterm{postfix-expression} ©--©707 \rhs ©(© \nonterm{type-name} ©)© ©{© \nonterm{initializer-list} ©}©708 \rhs ©(© \nonterm{type-name} ©)© ©{© \nonterm{initializer-list} ©,© ©}©686 \rhs \nonterm{postfix-expression} \lstinline$[$ \nonterm{expression} \lstinline$]$ 687 \rhs \nonterm{postfix-expression} \lstinline$($ 688 \nonterm{argument-expression-list}\opt \lstinline$)$ 689 \rhs \nonterm{postfix-expression} \lstinline$.$ \nonterm{identifier} 690 \rhs \nonterm{postfix-expression} \lstinline$->$ \nonterm{identifier} 691 \rhs \nonterm{postfix-expression} \lstinline$++$ 692 \rhs \nonterm{postfix-expression} \lstinline$--$ 693 \rhs \lstinline$($ \nonterm{type-name} \lstinline$)$ \lstinline${$ \nonterm{initializer-list} \lstinline$}$ 694 \rhs \lstinline$($ \nonterm{type-name} \lstinline$)$ \lstinline${$ \nonterm{initializer-list} \lstinline$,$ \lstinline$}$ 709 695 \lhs{argument-expression-list} 710 696 \rhs \nonterm{assignment-expression} 711 \rhs \nonterm{argument-expression-list} ©,©697 \rhs \nonterm{argument-expression-list} \lstinline$,$ 712 698 \nonterm{assignment-expression} 713 699 \end{syntax} … … 715 701 \rewriterules 716 702 \begin{lstlisting} 717 a[b] => ?[?]( b, a ) // if a has integer type§\use{?[?]}§718 a[b] =>?[?]( a, b ) // otherwise719 a( §\emph{arguments}§ ) => ?()( a, §\emph{arguments}§ )§\use{?()}§720 a++ => ?++(&( a ))§\use{?++}§721 a-- => ?--(&( a ))§\use{?--}§703 a[b] @\rewrite@ ?[?]( b, a ) // if a has integer type@\use{?[?]}@ 704 a[b] @\rewrite@ ?[?]( a, b ) // otherwise 705 a( @\emph{arguments}@ ) @\rewrite@ ?()( a, @\emph{arguments}@ )@\use{?()}@ 706 a++ @\rewrite@ ?++(&( a ))@\use{?++}@ 707 a-- @\rewrite@ ?--(&( a ))@\use{?--}@ 722 708 \end{lstlisting} 723 709 … … 727 713 \predefined 728 714 \begin{lstlisting} 729 forall( otype T ) lvalue T ?[?]( T *, ptrdiff_t ); §\use{ptrdiff_t}§715 forall( otype T ) lvalue T ?[?]( T *, ptrdiff_t );@\use{ptrdiff_t}@ 730 716 forall( otype T ) lvalue _Atomic T ?[?]( _Atomic T *, ptrdiff_t ); 731 717 forall( otype T ) lvalue const T ?[?]( const T *, ptrdiff_t ); … … 747 733 The interpretations of subscript expressions are the interpretations of the corresponding function call expressions. 748 734 \begin{rationale} 749 C defines subscripting as pointer arithmetic in a way that makes ©a[i]© and ©i[a]© equivalent. \CFA provides the equivalence through a rewrite rule to reduce the number of overloadings of ©?[?]©. 735 C defines subscripting as pointer arithmetic in a way that makes \lstinline$a[i]$ and 736 \lstinline$i[a]$ equivalent. \CFA provides the equivalence through a rewrite rule to reduce the number of overloadings of \lstinline$?[?]$. 750 737 751 738 Subscript expressions are rewritten as function calls that pass the first parameter by value. 752 739 This is somewhat unfortunate, since array-like types tend to be large. 753 The alternative is to use the rewrite rule `` ©a[b] => ?[?](&(a), b)©''.754 However, C semantics forbid this approach: the ©a© in ``©a[b]©'' can be an arbitrary pointer value, which does not have an address.740 The alternative is to use the rewrite rule ``\lstinline$a[b]$ \rewrite \lstinline$?[?](&(a), b)$''. 741 However, C semantics forbid this approach: the \lstinline$a$ in ``\lstinline$a[b]$'' can be an arbitrary pointer value, which does not have an address. 755 742 756 743 The repetitive form of the predefined identifiers shows up a deficiency\index{deficiencies!pointers … … 767 754 \nonterm{postfix-expression} in a function call may have some interpretations that are function designators and some that are not. 768 755 769 For those interpretations of the \nonterm{postfix-expression} that are not function designators, the expression is rewritten and becomes a call of a function named `` ©?()©''.756 For those interpretations of the \nonterm{postfix-expression} that are not function designators, the expression is rewritten and becomes a call of a function named ``\lstinline$?()$''. 770 757 The valid interpretations of the rewritten expression are determined in the manner described below. 771 758 … … 774 761 \begin{itemize} 775 762 \item if the argument corresponds to a parameter in the function designator's prototype, the argument interpretation must have the same type as the corresponding parameter, or be implicitly convertible to the parameter's type 776 \item if the function designator's type does not include a prototype or if the argument corresponds to ``©...©'' in a prototype, a \Index{default argument promotion} is applied to it. 763 \item if the function designator's type does not include a prototype or if the argument corresponds to 764 ``\lstinline$...$'' in a prototype, a \Index{default argument promotion} is applied to it. 777 765 \end{itemize} 778 766 The type of the valid interpretation is the return type of the function designator. 779 767 780 For those combinations where the interpretation of the \nonterm{postfix-expression} is a \Index{polymorphic function} designator and the function designator accepts the number of arguments given, there shall be at least one set of \define{implicit argument}s for the implicit parameters such that 768 For those combinations where the interpretation of the \nonterm{postfix-expression} is a 769 \Index{polymorphic function} designator and the function designator accepts the number of arguments given, there shall be at least one set of \define{implicit argument}s for the implicit parameters such that 781 770 \begin{itemize} 782 771 \item 783 If the declaration of the implicit parameter uses \Index{type-class} ©type©\use{type}, the implicit argument must be an object type;784 if it uses ©dtype©, the implicit argument must be an object type or an incomplete type;785 and if it uses ©ftype©, the implicit argument must be a function type.772 If the declaration of the implicit parameter uses \Index{type-class} \lstinline$type$\use{type}, the implicit argument must be an object type; 773 if it uses \lstinline$dtype$, the implicit argument must be an object type or an incomplete type; 774 and if it uses \lstinline$ftype$, the implicit argument must be a function type. 786 775 787 776 \item if an explicit parameter's type uses any implicit parameters, then the corresponding explicit argument must have a type that is (or can be safely converted\index{safe conversion} to) the type produced by substituting the implicit arguments for the implicit parameters in the explicit parameter type. … … 802 791 \begin{rationale} 803 792 One desirable property of a polymorphic programming language is \define{generalizability}: the ability to replace an abstraction with a more general but equivalent abstraction without requiring changes in any of the uses of the original\cite{Cormack90}. 804 For instance, it should be possible to replace a function ``©int f( int );©'' with ``©forall( otype T ) T f( T );©'' without affecting any calls of ©f©. 805 806 \CFA\index{deficiencies!generalizability} does not fully possess this property, because \Index{unsafe conversion} are not done when arguments are passed to polymorphic parameters. 793 For instance, it should be possible to replace a function ``\lstinline$int f( int );$'' with ``\lstinline$forall( otype T ) T f( T );$'' without affecting any calls of \lstinline$f$. 794 795 \CFA\index{deficiencies!generalizability} does not fully possess this property, because 796 \Index{unsafe conversion} are not done when arguments are passed to polymorphic parameters. 807 797 Consider 808 798 \begin{lstlisting} … … 815 805 f = g( d, f ); // (3) (unsafe conversion to float) 816 806 \end{lstlisting} 817 If ©g© was replaced by ``©forall( otype T ) T g( T, T );©'', the first and second calls would be unaffected, but the third would change: ©f© would be converted to ©double©, and the result would be a ©double©. 818 819 Another example is the function ``©void h( int *);©''. 820 This function can be passed a ©void *© argument, but the generalization ``©forall( otype T ) void h( T *);©'' can not. 821 In this case, ©void© is not a valid value for ©T© because it is not an object type. 822 If unsafe conversions were allowed, ©T© could be inferred to be \emph{any} object type, which is undesirable. 807 If \lstinline$g$ was replaced by ``\lstinline$forall( otype T ) T g( T, T );$'', the first and second calls would be unaffected, but the third would change: \lstinline$f$ would be converted to 808 \lstinline$double$, and the result would be a \lstinline$double$. 809 810 Another example is the function ``\lstinline$void h( int *);$''. 811 This function can be passed a 812 \lstinline$void *$ argument, but the generalization ``\lstinline$forall( otype T ) void h( T *);$'' can not. 813 In this case, \lstinline$void$ is not a valid value for \lstinline$T$ because it is not an object type. 814 If unsafe conversions were allowed, \lstinline$T$ could be inferred to be \emph{any} object type, which is undesirable. 823 815 \end{rationale} 824 816 825 817 \examples 826 A function called `` ©?()©'' might be part of a numerical differentiation package.818 A function called ``\lstinline$?()$'' might be part of a numerical differentiation package. 827 819 \begin{lstlisting} 828 820 extern otype Derivative; … … 835 827 d = sin_dx( 12.9 ); 836 828 \end{lstlisting} 837 Here, the only interpretation of ©sin_dx© is as an object of type ©Derivative©.838 For that interpretation, the function call is treated as `` ©?()( sin_dx, 12.9 )©''.829 Here, the only interpretation of \lstinline$sin_dx$ is as an object of type \lstinline$Derivative$. 830 For that interpretation, the function call is treated as ``\lstinline$?()( sin_dx, 12.9 )$''. 839 831 \begin{lstlisting} 840 832 int f( long ); // (1) … … 843 835 int i = f( 5 ); // calls (1) 844 836 \end{lstlisting} 845 Function (1) provides a valid interpretation of `` ©f( 5 )©'', using an implicit ©int© to ©long©conversion.846 The other functions do not, since the second requires two arguments, and since there is no implicit conversion from ©int© to ©int *©that could be used with the third function.837 Function (1) provides a valid interpretation of ``\lstinline$f( 5 )$'', using an implicit \lstinline$int$ to \lstinline$long$ conversion. 838 The other functions do not, since the second requires two arguments, and since there is no implicit conversion from \lstinline$int$ to \lstinline$int *$ that could be used with the third function. 847 839 848 840 \begin{lstlisting} … … 850 842 double d = h( 1.5 ); 851 843 \end{lstlisting} 852 ``©1.5©'' is a ©double© constant, so ©T© is inferred to be ©double©, and the result of the function call is a ©double©. 844 ``\lstinline$1.5$'' is a \lstinline$double$ constant, so \lstinline$T$ is inferred to be 845 \lstinline$double$, and the result of the function call is a \lstinline$double$. 853 846 854 847 \begin{lstlisting} 855 848 forall( otype T, otype U ) void g( T, U ); // (4) 856 849 forall( otype T ) void g( T, T ); // (5) 857 forall( otype T ) void g( T, long ); // (6)850 forall( otype T ) void g( T, long ); // (6) 858 851 void g( long, long ); // (7) 859 852 double d; 860 853 int i; 861 854 int *p; 862 g( d, d ); // calls (5)863 g( d, i ); // calls (6)864 g( i, i ); // calls (7)865 g( i, p ); // calls (4)866 \end{lstlisting} 867 The first call has valid interpretations for all four versions of ©g©. (6) and (7) are discarded because they involve unsafe ©double©-to-©long©conversions. (5) is chosen because it is less polymorphic than (4).855 g( d, d ); // calls (5) 856 g( d, i ); // calls (6) 857 g( i, i ); // calls (7) 858 g( i, p ); // calls (4) 859 \end{lstlisting} 860 The first call has valid interpretations for all four versions of \lstinline$g$. (6) and (7) are discarded because they involve unsafe \lstinline$double$-to-\lstinline$long$ conversions. (5) is chosen because it is less polymorphic than (4). 868 861 869 862 For the second call, (7) is again discarded. 870 Of the remaining interpretations for (4), (5), and (6) (with ©i© converted to ©long©), (6) is chosen because it is the least polymorphic.863 Of the remaining interpretations for (4), (5), and (6) (with \lstinline$i$ converted to \lstinline$long$), (6) is chosen because it is the least polymorphic. 871 864 872 865 The third call has valid interpretations for all of the functions; … … 877 870 forall( otype T ) T min( T, T ); 878 871 double max( double, double ); 879 trait min_max( T ) { §\impl{min_max}§872 trait min_max( T ) {@\impl{min_max}@ 880 873 T min( T, T ); 881 874 T max( T, T ); … … 884 877 shuffle( 9, 10 ); 885 878 \end{lstlisting} 886 The only possibility for ©U© is ©double©, because that is the type used in the only visible ©max© function. 9 and 10 must be converted to ©double©, and ©min© must be specialized with ©T© bound to ©double©. 887 \begin{lstlisting} 888 extern void q( int ); // (8) 889 extern void q( void * ); // (9) 879 The only possibility for \lstinline$U$ is \lstinline$double$, because that is the type used in the only visible \lstinline$max$ function. 9 and 10 must be converted to \lstinline$double$, and 880 \lstinline$min$ must be specialized with \lstinline$T$ bound to \lstinline$double$. 881 \begin{lstlisting} 882 extern void q( int ); // (8) 883 extern void q( void * ); // (9) 890 884 extern void r(); 891 885 q( 0 ); 892 886 r( 0 ); 893 887 \end{lstlisting} 894 The ©int 0© could be passed to (8), or the ©(void *)© \Index{specialization} of the null pointer\index{null pointer} ©0©\use{0} could be passed to (9).895 The former is chosen because the ©int© ©0©is \Index{less polymorphic}.896 For the same reason, ©int© ©0© is passed to ©r()©, even though it has \emph{no} declared parameter types.888 The \lstinline$int 0$ could be passed to (8), or the \lstinline$(void *)$ \Index{specialization} of the null pointer\index{null pointer} \lstinline$0$\use{0} could be passed to (9). 889 The former is chosen because the \lstinline$int$ \lstinline$0$ is \Index{less polymorphic}. 890 For the same reason, \lstinline$int$ \lstinline$0$ is passed to \lstinline$r()$, even though it has \emph{no} declared parameter types. 897 891 898 892 899 893 \subsubsection{Structure and union members} 900 894 901 \semantics In the member selection expression ``©s©.©m©'', there shall be at least one interpretation of ©s© whose type is a structure type or union type containing a member named ©m©. 902 If two or more interpretations of ©s© have members named ©m© with mutually compatible types, then the expression has an \Index{ambiguous interpretation} whose type is the composite type of the types of the members. 903 If an interpretation of ©s© has a member ©m© whose type is not compatible with any other ©s©'s ©m©, then the expression has an interpretation with the member's type. 895 \semantics In the member selection expression ``\lstinline$s$.\lstinline$m$'', there shall be at least one interpretation of \lstinline$s$ whose type is a structure type or union type containing a member named \lstinline$m$. 896 If two or more interpretations of \lstinline$s$ have members named 897 \lstinline$m$ with mutually compatible types, then the expression has an \Index{ambiguous interpretation} whose type is the composite type of the types of the members. 898 If an interpretation of \lstinline$s$ has a member \lstinline$m$ whose type is not compatible with any other 899 \lstinline$s$'s \lstinline$m$, then the expression has an interpretation with the member's type. 904 900 The expression has no other interpretations. 905 901 906 The expression ``©p->m©'' has the same interpretations as the expression ``©(*p).m©''. 902 The expression ``\lstinline$p->m$'' has the same interpretations as the expression 903 ``\lstinline$(*p).m$''. 907 904 908 905 … … 999 996 * ?--( _Atomic const restrict volatile T * _Atomic restrict volatile * ); 1000 997 \end{lstlisting} 1001 For every extended integer type ©X©there exist998 For every extended integer type \lstinline$X$ there exist 1002 999 % Don't use predefined: keep this out of prelude.cf. 1003 1000 \begin{lstlisting} … … 1005 1002 ?--( volatile X * ), ?--( _Atomic volatile X * ); 1006 1003 \end{lstlisting} 1007 For every complete enumerated type ©E©there exist1004 For every complete enumerated type \lstinline$E$ there exist 1008 1005 % Don't use predefined: keep this out of prelude.cf. 1009 1006 \begin{lstlisting} … … 1013 1010 1014 1011 \begin{rationale} 1015 Note that `` ©++©'' and ``©--©'' are rewritten as function calls that are given a pointer to that operand. (This is true of all operators that modify an operand.) As Hamish Macdonald has pointed out, this forces the modified operand of such expressions to be an lvalue.1012 Note that ``\lstinline$++$'' and ``\lstinline$--$'' are rewritten as function calls that are given a pointer to that operand. (This is true of all operators that modify an operand.) As Hamish Macdonald has pointed out, this forces the modified operand of such expressions to be an lvalue. 1016 1013 This partially enforces the C semantic rule that such operands must be \emph{modifiable} lvalues. 1017 1014 \end{rationale} … … 1019 1016 \begin{rationale} 1020 1017 In C, a semantic rule requires that pointer operands of increment and decrement be pointers to object types. 1021 Hence, ©void *©objects cannot be incremented.1022 In \CFA, the restriction follows from the use of a ©type© parameter in the predefined function definitions, as opposed to ©dtype©, since only object types can be inferred arguments corresponding to the type parameter ©T©.1018 Hence, \lstinline$void *$ objects cannot be incremented. 1019 In \CFA, the restriction follows from the use of a \lstinline$type$ parameter in the predefined function definitions, as opposed to \lstinline$dtype$, since only object types can be inferred arguments corresponding to the type parameter \lstinline$T$. 1023 1020 \end{rationale} 1024 1021 1025 1022 \semantics 1026 1023 First, each interpretation of the operand of an increment or decrement expression is considered separately. 1027 For each interpretation that is a bit-field or is declared with the \Indexc{register}\index{storage-class specifier}, the expression has one valid interpretation, with the type of the operand, and the expression is ambiguous if the operand is. 1024 For each interpretation that is a bit-field or is declared with the 1025 \lstinline$register$\index{register@{\lstinline$register$}} \index{Itorage-class specifier}, the expression has one valid interpretation, with the type of the operand, and the expression is ambiguous if the operand is. 1028 1026 1029 1027 For the remaining interpretations, the expression is rewritten, and the interpretations of the expression are the interpretations of the corresponding function call. … … 1038 1036 \end{lstlisting} 1039 1037 \begin{sloppypar} 1040 Since ©&(vs)© has type ©volatile short int *©, the best valid interpretation of ©vs++© calls the ©?++© function with the ©volatile short *© parameter. 1041 ©s++© does the same, applying the safe conversion from ©short int *© to ©volatile short int *©. 1042 Note that there is no conversion that adds an ©_Atomic© qualifier, so the ©_Atomic volatile short int© overloading does not provide a valid interpretation. 1038 Since \lstinline$&(vs)$ has type \lstinline$volatile short int *$, the best valid interpretation of 1039 \lstinline$vs++$ calls the \lstinline$?++$ function with the \lstinline$volatile short *$ parameter. 1040 \lstinline$s++$ does the same, applying the safe conversion from \lstinline$short int *$ to 1041 \lstinline$volatile short int *$. 1042 Note that there is no conversion that adds an \lstinline$_Atomic$ qualifier, so the \lstinline$_Atomic volatile short int$ overloading does not provide a valid interpretation. 1043 1043 \end{sloppypar} 1044 1044 1045 There is no safe conversion from ©const short int *© to ©volatile short int *©, and no ©?++© function that accepts a ©const *© parameter, so ©cs++©has no valid interpretations.1046 1047 The best valid interpretation of ©as++© calls the ©short ?++© function with the ©_Atomic volatile short int *© parameter, applying a safe conversion to add the ©volatile©qualifier.1045 There is no safe conversion from \lstinline$const short int *$ to \lstinline$volatile short int *$, and no \lstinline$?++$ function that accepts a \lstinline$const *$ parameter, so \lstinline$cs++$ has no valid interpretations. 1046 1047 The best valid interpretation of \lstinline$as++$ calls the \lstinline$short ?++$ function with the \lstinline$_Atomic volatile short int *$ parameter, applying a safe conversion to add the \lstinline$volatile$ qualifier. 1048 1048 \begin{lstlisting} 1049 1049 char * const restrict volatile * restrict volatile pqpc; … … 1052 1052 ppc++; 1053 1053 \end{lstlisting} 1054 Since ©&(pqpc)© has type ©char * const restrict volatile * restrict volatile *©, the best valid interpretation of ©pqpc++© calls the polymorphic ©?++© function with the ©const restrict volatile T * restrict volatile *© parameter, inferring ©T© to be ©char *©.1055 1056 ©ppc++© calls the same function, again inferring ©T© to be ©char *©, and using the safe conversions from ©T© to ©T const© ©restrict volatile©.1054 Since \lstinline$&(pqpc)$ has type \lstinline$char * const restrict volatile * restrict volatile *$, the best valid interpretation of \lstinline$pqpc++$ calls the polymorphic \lstinline$?++$ function with the \lstinline$const restrict volatile T * restrict volatile *$ parameter, inferring \lstinline$T$ to be \lstinline$char *$. 1055 1056 \lstinline$ppc++$ calls the same function, again inferring \lstinline$T$ to be \lstinline$char *$, and using the safe conversions from \lstinline$T$ to \lstinline$T const$ \lstinline$restrict volatile$. 1057 1057 1058 1058 \begin{rationale} … … 1068 1068 \begin{enumerate} 1069 1069 \item 1070 `` ©char * p; p++;©''.1071 The argument to ©?++© has type ©char * *©, and the result has type ©char *©.1072 The expression would be valid if ©?++©were declared by1070 ``\lstinline$char * p; p++;$''. 1071 The argument to \lstinline$?++$ has type \lstinline$char * *$, and the result has type \lstinline$char *$. 1072 The expression would be valid if \lstinline$?++$ were declared by 1073 1073 \begin{lstlisting} 1074 1074 forall( otype T ) T * ?++( T * * ); 1075 \end{lstlisting} with ©T© inferred to be ©char©.1076 1077 \item 1078 `` ©char *restrict volatile qp; qp++©''.1079 The result again has type ©char *©, but the argument now has type ©char *restrict volatile *©, so it cannot be passed to the hypothetical function declared in point 1.1075 \end{lstlisting} with \lstinline$T$ inferred to be \lstinline$char$. 1076 1077 \item 1078 ``\lstinline$char *restrict volatile qp; qp++$''. 1079 The result again has type \lstinline$char *$, but the argument now has type \lstinline$char *restrict volatile *$, so it cannot be passed to the hypothetical function declared in point 1. 1080 1080 Hence the actual predefined function is 1081 1081 \begin{lstlisting} 1082 1082 forall( otype T ) T * ?++( T * restrict volatile * ); 1083 \end{lstlisting} which also accepts a ©char * *© argument, because of the safe conversions that add ©volatile© and ©restrict© qualifiers. (The parameter is not const-qualified, so constant pointers cannot be incremented.) 1084 1085 \item 1086 ``©char *_Atomic ap; ap++©''. 1087 The result again has type ©char *©, but no safe conversion adds an ©_Atomic© qualifier, so the function in point 2 is not applicable. 1088 A separate overloading of ©?++© is required. 1089 1090 \item 1091 ``©char const volatile * pq; pq++©''. 1092 Here the result has type ©char const volatile *©, so a new overloading is needed: 1083 \end{lstlisting} which also accepts a \lstinline$char * *$ argument, because of the safe conversions that add 1084 \lstinline$volatile$ and \lstinline$restrict$ qualifiers. (The parameter is not const-qualified, so constant pointers cannot be incremented.) 1085 1086 \item 1087 ``\lstinline$char *_Atomic ap; ap++$''. 1088 The result again has type \lstinline$char *$, but no safe conversion adds an \lstinline$_Atomic$ qualifier, so the function in point 2 is not applicable. 1089 A separate overloading of \lstinline$?++$ is required. 1090 1091 \item 1092 ``\lstinline$char const volatile * pq; pq++$''. 1093 Here the result has type 1094 \lstinline$char const volatile *$, so a new overloading is needed: 1093 1095 \begin{lstlisting} 1094 1096 forall( otype T ) T const volatile * ?++( T const volatile *restrict volatile * ); … … 1097 1099 1098 1100 \item 1099 `` ©float *restrict * prp; prp++©''.1100 The ©restrict© qualifier is handled just like ©const© and ©volatile©in the previous case:1101 ``\lstinline$float *restrict * prp; prp++$''. 1102 The \lstinline$restrict$ qualifier is handled just like \lstinline$const$ and \lstinline$volatile$ in the previous case: 1101 1103 \begin{lstlisting} 1102 1104 forall( otype T ) T restrict * ?++( T restrict *restrict volatile * ); 1103 \end{lstlisting} with ©T© inferred to be ©float *©.1104 This looks odd, because {\c11} contains a constraint that requires restrict-qualified types to be pointer-to-object types, and ©T©is not syntactically a pointer type. \CFA loosens the constraint.1105 \end{lstlisting} with \lstinline$T$ inferred to be \lstinline$float *$. 1106 This looks odd, because {\c11} contains a constraint that requires restrict-qualified types to be pointer-to-object types, and \lstinline$T$ is not syntactically a pointer type. \CFA loosens the constraint. 1105 1107 \end{enumerate} 1106 1108 \end{rationale} … … 1117 1119 \begin{syntax} 1118 1120 \lhs{unary-expression} 1119 \rhs \nonterm{postfix-expression} 1120 \rhs ©++© \nonterm{unary-expression} 1121 \rhs ©--© \nonterm{unary-expression} 1122 \rhs \nonterm{unary-operator} \nonterm{cast-expression} 1123 \rhs ©sizeof© \nonterm{unary-expression} 1124 \rhs ©sizeof© ©(© \nonterm{type-name} ©)© 1125 \lhs{unary-operator} one of 1126 \rhs ©&© ©*© ©+© ©-© ©~© ©!© 1121 \rhs \nonterm{postfix-expression} 1122 \rhs \lstinline$++$ \nonterm{unary-expression} 1123 \rhs \lstinline$--$ \nonterm{unary-expression} 1124 \rhs \nonterm{unary-operator} \nonterm{cast-expression} 1125 \rhs \lstinline$sizeof$ \nonterm{unary-expression} 1126 \rhs \lstinline$sizeof$ \lstinline$($ \nonterm{type-name} \lstinline$)$ 1127 \lhs{unary-operator} one of \rhs \lstinline$&$ \lstinline$*$ \lstinline$+$ \lstinline$-$ \lstinline$~$ \lstinline$!$ 1127 1128 \end{syntax} 1128 1129 1129 1130 \rewriterules 1130 1131 \begin{lstlisting} 1131 *a => *?( a )§\use{*?}§1132 +a => +?( a )§\use{+?}§1133 -a => -?( a )§\use{-?}§1134 ~a => ~?( a )§\use{~?}§1135 !a => !?( a )§\use{"!?}§1136 ++a => ++?(&( a ))§\use{++?}§1137 --a => --?(&( a ))§\use{--?}§1132 *a @\rewrite@ *?( a ) @\use{*?}@ 1133 +a @\rewrite@ +?( a ) @\use{+?}@ 1134 -a @\rewrite@ -?( a ) @\use{-?}@ 1135 ~a @\rewrite@ ~?( a ) @\use{~?}@ 1136 !a @\rewrite@ !?( a ) @\use{"!?}@ 1137 ++a @\rewrite@ ++?(&( a )) @\use{++?}@ 1138 --a @\rewrite@ --?(&( a )) @\use{--?}@ 1138 1139 \end{lstlisting} 1139 1140 … … 1231 1232 * --?( _Atomic const restrict volatile T * _Atomic restrict volatile * ); 1232 1233 \end{lstlisting} 1233 For every extended integer type ©X©there exist1234 For every extended integer type \lstinline$X$ there exist 1234 1235 % Don't use predefined: keep this out of prelude.cf. 1235 1236 \begin{lstlisting} … … 1239 1240 --?( _Atomic volatile X * ); 1240 1241 \end{lstlisting} 1241 For every complete enumerated type ©E©there exist1242 For every complete enumerated type \lstinline$E$ there exist 1242 1243 % Don't use predefined: keep this out of prelude.cf. 1243 1244 \begin{lstlisting} … … 1276 1277 1277 1278 \constraints 1278 The operand of the unary ``©&©'' operator shall have exactly one \Index{interpretation}\index{ambiguous interpretation}, which shall be unambiguous. 1279 The operand of the unary ``\lstinline$&$'' operator shall have exactly one 1280 \Index{interpretation}\index{ambiguous interpretation}, which shall be unambiguous. 1279 1281 1280 1282 \semantics 1281 The ``©&©'' expression has one interpretation which is of type ©T *©, where ©T© is the type of the operand. 1283 The ``\lstinline$&$'' expression has one interpretation which is of type \lstinline$T *$, where 1284 \lstinline$T$ is the type of the operand. 1282 1285 1283 1286 The interpretations of an indirection expression are the interpretations of the corresponding function call. … … 1308 1311 forall( ftype FT ) int !?( FT * ); 1309 1312 \end{lstlisting} 1310 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int©there exist1313 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$ there exist 1311 1314 % Don't use predefined: keep this out of prelude.cf. 1312 1315 \begin{lstlisting} … … 1321 1324 \begin{lstlisting} 1322 1325 long int li; 1323 void eat_double( double ); §\use{eat_double}§1324 eat_double(-li ); // =>eat_double( -?( li ) );1325 \end{lstlisting} 1326 The valid interpretations of `` ©-li©'' (assuming no extended integer types exist) are1326 void eat_double( double );@\use{eat_double}@ 1327 eat_double(-li ); // @\rewrite@ eat_double( -?( li ) ); 1328 \end{lstlisting} 1329 The valid interpretations of ``\lstinline$-li$'' (assuming no extended integer types exist) are 1327 1330 \begin{center} 1328 1331 \begin{tabular}{llc} interpretation & result type & expression conversion cost \\ 1329 1332 \hline 1330 ©-?( (int)li )© & ©int©& (unsafe) \\1331 ©-?( (unsigned)li)© & ©unsigned int©& (unsafe) \\1332 ©-?( (long)li)© & ©long©& 0 \\1333 ©-?( (long unsigned int)li)© & ©long unsigned int©& 1 \\1334 ©-?( (long long int)li)© & ©long long int©& 2 \\1335 ©-?( (long long unsigned int)li)© & ©long long unsigned int©& 3 \\1336 ©-?( (float)li)© & ©float©& 4 \\1337 ©-?( (double)li)© & ©double©& 5 \\1338 ©-?( (long double)li)© & ©long double©& 6 \\1339 ©-?( (_Complex float)li)© & ©float©& (unsafe) \\1340 ©-?( (_Complex double)li)© & ©double©& (unsafe) \\1341 ©-?( (_Complex long double)li)© & ©long double©& (unsafe) \\1333 \lstinline$-?( (int)li )$ & \lstinline$int$ & (unsafe) \\ 1334 \lstinline$-?( (unsigned)li)$ & \lstinline$unsigned int$ & (unsafe) \\ 1335 \lstinline$-?( (long)li)$ & \lstinline$long$ & 0 \\ 1336 \lstinline$-?( (long unsigned int)li)$ & \lstinline$long unsigned int$ & 1 \\ 1337 \lstinline$-?( (long long int)li)$ & \lstinline$long long int$ & 2 \\ 1338 \lstinline$-?( (long long unsigned int)li)$ & \lstinline$long long unsigned int$& 3 \\ 1339 \lstinline$-?( (float)li)$ & \lstinline$float$ & 4 \\ 1340 \lstinline$-?( (double)li)$ & \lstinline$double$ & 5 \\ 1341 \lstinline$-?( (long double)li)$ & \lstinline$long double$ & 6 \\ 1342 \lstinline$-?( (_Complex float)li)$ & \lstinline$float$ & (unsafe) \\ 1343 \lstinline$-?( (_Complex double)li)$ & \lstinline$double$ & (unsafe) \\ 1344 \lstinline$-?( (_Complex long double)li)$ & \lstinline$long double$ & (unsafe) \\ 1342 1345 \end{tabular} 1343 1346 \end{center} 1344 The valid interpretations of the ©eat_double©call, with the cost of the argument conversion and the cost of the entire expression, are1347 The valid interpretations of the \lstinline$eat_double$ call, with the cost of the argument conversion and the cost of the entire expression, are 1345 1348 \begin{center} 1346 1349 \begin{tabular}{lcc} interpretation & argument cost & expression cost \\ 1347 1350 \hline 1348 ©eat_double( (double)-?( (int)li) )©& 7 & (unsafe) \\1349 ©eat_double( (double)-?( (unsigned)li) )©& 6 & (unsafe) \\1350 ©eat_double( (double)-?(li) )©& 5 & \(0+5=5\) \\1351 ©eat_double( (double)-?( (long unsigned int)li) )©& 4 & \(1+4=5\) \\1352 ©eat_double( (double)-?( (long long int)li) )©& 3 & \(2+3=5\) \\1353 ©eat_double( (double)-?( (long long unsigned int)li) )© & 2& \(3+2=5\) \\1354 ©eat_double( (double)-?( (float)li) )©& 1 & \(4+1=5\) \\1355 ©eat_double( (double)-?( (double)li) )©& 0 & \(5+0=5\) \\1356 ©eat_double( (double)-?( (long double)li) )©& (unsafe) & (unsafe) \\1357 ©eat_double( (double)-?( (_Complex float)li) )©& (unsafe) & (unsafe) \\1358 ©eat_double( (double)-?( (_Complex double)li) )©& (unsafe) & (unsafe) \\1359 ©eat_double( (double)-?( (_Complex long double)li) )©& (unsafe) & (unsafe) \\1351 \lstinline$eat_double( (double)-?( (int)li) )$ & 7 & (unsafe) \\ 1352 \lstinline$eat_double( (double)-?( (unsigned)li) )$ & 6 & (unsafe) \\ 1353 \lstinline$eat_double( (double)-?(li) )$ & 5 & \(0+5=5\) \\ 1354 \lstinline$eat_double( (double)-?( (long unsigned int)li) )$ & 4 & \(1+4=5\) \\ 1355 \lstinline$eat_double( (double)-?( (long long int)li) )$ & 3 & \(2+3=5\) \\ 1356 \lstinline$eat_double( (double)-?( (long long unsigned int)li) )$& 2 & \(3+2=5\) \\ 1357 \lstinline$eat_double( (double)-?( (float)li) )$ & 1 & \(4+1=5\) \\ 1358 \lstinline$eat_double( (double)-?( (double)li) )$ & 0 & \(5+0=5\) \\ 1359 \lstinline$eat_double( (double)-?( (long double)li) )$ & (unsafe) & (unsafe) \\ 1360 \lstinline$eat_double( (double)-?( (_Complex float)li) )$ & (unsafe) & (unsafe) \\ 1361 \lstinline$eat_double( (double)-?( (_Complex double)li) )$ & (unsafe) & (unsafe) \\ 1362 \lstinline$eat_double( (double)-?( (_Complex long double)li) )$ & (unsafe) & (unsafe) \\ 1360 1363 \end{tabular} 1361 1364 \end{center} 1362 Each has result type ©void©, so the best must be selected.1365 Each has result type \lstinline$void$, so the best must be selected. 1363 1366 The interpretations involving unsafe conversions are discarded. 1364 The remainder have equal expression conversion costs, so the ``highest argument conversion cost'' rule is invoked, and the chosen interpretation is ©eat_double( (double)-?(li) )©. 1365 1366 1367 \subsubsection[The sizeof and \_Alignof operators]{The \lstinline@sizeof@ and \lstinline@_Alignof@ operators} 1367 The remainder have equal expression conversion costs, so the 1368 ``highest argument conversion cost'' rule is invoked, and the chosen interpretation is 1369 \lstinline$eat_double( (double)-?(li) )$. 1370 1371 1372 \subsubsection{The \lstinline$sizeof$ and \lstinline$_Alignof$ operators} 1368 1373 1369 1374 \constraints 1370 The operand of ©sizeof© or ©_Alignof© shall not be ©type©, ©dtype©, or ©ftype©. 1371 1372 When the ©sizeof©\use{sizeof} operator is applied to an expression, the expression shall have exactly one \Index{interpretation}\index{ambiguous interpretation}, which shall be unambiguous. \semantics A ©sizeof© or ©_Alignof© expression has one interpretation, of type ©size_t©. 1373 1374 When ©sizeof© is applied to an identifier declared by a \nonterm{type-declaration} or a 1375 The operand of \lstinline$sizeof$ or \lstinline$_Alignof$ shall not be \lstinline$type$, 1376 \lstinline$dtype$, or \lstinline$ftype$. 1377 1378 When the \lstinline$sizeof$\use{sizeof} operator is applied to an expression, the expression shall have exactly one \Index{interpretation}\index{ambiguous interpretation}, which shall be unambiguous. \semantics A \lstinline$sizeof$ or \lstinline$_Alignof$ expression has one interpretation, of type \lstinline$size_t$. 1379 1380 When \lstinline$sizeof$ is applied to an identifier declared by a \nonterm{type-declaration} or a 1375 1381 \nonterm{type-parameter}, it yields the size in bytes of the type that implements the operand. 1376 1382 When the operand is an opaque type or an inferred type parameter\index{inferred parameter}, the expression is not a constant expression. 1377 1383 1378 When ©_Alignof©is applied to an identifier declared by a \nonterm{type-declaration} or a1384 When \lstinline$_Alignof$ is applied to an identifier declared by a \nonterm{type-declaration} or a 1379 1385 \nonterm{type-parameter}, it yields the alignment requirement of the type that implements the operand. 1380 1386 When the operand is an opaque type or an inferred type parameter\index{inferred parameter}, the expression is not a constant expression. … … 1383 1389 otype Pair = struct { int first, second; }; 1384 1390 size_t p_size = sizeof(Pair); // constant expression 1385 extern otype Rational; §\use{Rational}§1391 extern otype Rational;@\use{Rational}@ 1386 1392 size_t c_size = sizeof(Rational); // non-constant expression 1387 1393 forall(type T) T f(T p1, T p2) { … … 1390 1396 } 1391 1397 \end{lstlisting} 1392 ``©sizeof Rational©'', although not statically known, is fixed. 1393 Within ©f()©, ``©sizeof(T)©'' is fixed for each call of ©f()©, but may vary from call to call. 1398 ``\lstinline$sizeof Rational$'', although not statically known, is fixed. 1399 Within \lstinline$f()$, 1400 ``\lstinline$sizeof(T)$'' is fixed for each call of \lstinline$f()$, but may vary from call to call. 1394 1401 \end{rationale} 1395 1402 … … 1400 1407 \lhs{cast-expression} 1401 1408 \rhs \nonterm{unary-expression} 1402 \rhs ©(© \nonterm{type-name} ©)©\nonterm{cast-expression}1409 \rhs \lstinline$($ \nonterm{type-name} \lstinline$)$ \nonterm{cast-expression} 1403 1410 \end{syntax} 1404 1411 1405 1412 \constraints 1406 The \nonterm{type-name} in a \nonterm{cast-expression} shall not be ©type©, ©dtype©, or ©ftype©. 1413 The \nonterm{type-name} in a \nonterm{cast-expression} shall not be \lstinline$type$, 1414 \lstinline$dtype$, or \lstinline$ftype$. 1407 1415 1408 1416 \semantics 1409 1417 1410 In a \Index{cast expression} `` ©(©\nonterm{type-name}©)e©'', if1411 \nonterm{type-name} is the type of an interpretation of ©e©, then that interpretation is the only interpretation of the cast expression;1412 otherwise, ©e©shall have some interpretation that can be converted to \nonterm{type-name}, and the interpretation of the cast expression is the cast of the interpretation that can be converted at the lowest cost.1418 In a \Index{cast expression} ``\lstinline$($\nonterm{type-name}\lstinline$)e$'', if 1419 \nonterm{type-name} is the type of an interpretation of \lstinline$e$, then that interpretation is the only interpretation of the cast expression; 1420 otherwise, \lstinline$e$ shall have some interpretation that can be converted to \nonterm{type-name}, and the interpretation of the cast expression is the cast of the interpretation that can be converted at the lowest cost. 1413 1421 The cast expression's interpretation is ambiguous\index{ambiguous interpretation} if more than one interpretation can be converted at the lowest cost or if the selected interpretation is ambiguous. 1414 1422 … … 1423 1431 \lhs{multiplicative-expression} 1424 1432 \rhs \nonterm{cast-expression} 1425 \rhs \nonterm{multiplicative-expression} ©*©\nonterm{cast-expression}1426 \rhs \nonterm{multiplicative-expression} ©/©\nonterm{cast-expression}1427 \rhs \nonterm{multiplicative-expression} ©%©\nonterm{cast-expression}1433 \rhs \nonterm{multiplicative-expression} \lstinline$*$ \nonterm{cast-expression} 1434 \rhs \nonterm{multiplicative-expression} \lstinline$/$ \nonterm{cast-expression} 1435 \rhs \nonterm{multiplicative-expression} \lstinline$%$ \nonterm{cast-expression} 1428 1436 \end{syntax} 1429 1437 1430 1438 \rewriterules 1431 1439 \begin{lstlisting} 1432 a * b => ?*?( a, b )§\use{?*?}§1433 a / b => ?/?( a, b )§\use{?/?}§1434 a % b => ?%?( a, b )§\use{?%?}§1440 a * b @\rewrite@ ?*?( a, b )@\use{?*?}@ 1441 a / b @\rewrite@ ?/?( a, b )@\use{?/?}@ 1442 a % b @\rewrite@ ?%?( a, b )@\use{?%?}@ 1435 1443 \end{lstlisting} 1436 1444 … … 1459 1467 ?*?( _Complex long double, _Complex long double ), ?/?( _Complex long double, _Complex long double ); 1460 1468 \end{lstlisting} 1461 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int©there exist1469 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$ there exist 1462 1470 % Don't use predefined: keep this out of prelude.cf. 1463 1471 \begin{lstlisting} … … 1466 1474 1467 1475 \begin{rationale} 1468 {\c11} does not include conversions from the \Index{real type}s to \Index{complex type}s in the \Index{usual arithmetic conversion}s. Instead it specifies conversion of the result of binary operations on arguments from mixed type domains. \CFA's predefined operators match that pattern. 1476 {\c11} does not include conversions from the \Index{real type}s to \Index{complex type}s in the 1477 \Index{usual arithmetic conversion}s. Instead it specifies conversion of the result of binary operations on arguments from mixed type domains. \CFA's predefined operators match that pattern. 1469 1478 \end{rationale} 1470 1479 … … 1476 1485 int i; 1477 1486 long li; 1478 void eat_double( double ); §\use{eat_double}§1487 void eat_double( double );@\use{eat_double}@ 1479 1488 eat_double( li % i ); 1480 1489 \end{lstlisting} 1481 `` ©li % i©'' is rewritten as ``©?%?(li, i )©''.1482 The valid interpretations of ©?%?(li, i )©, the cost\index{conversion cost} of converting their arguments, and the cost of converting the result to ©double©(assuming no extended integer types are present ) are1490 ``\lstinline$li % i$'' is rewritten as ``\lstinline$?%?(li, i )$''. 1491 The valid interpretations of \lstinline$?%?(li, i )$, the cost\index{conversion cost} of converting their arguments, and the cost of converting the result to \lstinline$double$ (assuming no extended integer types are present ) are 1483 1492 \begin{center} 1484 1493 \begin{tabular}{lcc} interpretation & argument cost & result cost \\ 1485 \hline 1486 © ?%?( (int)li, i )©& (unsafe) & 6 \\1487 © ?%?( (unsigned)li,(unsigned)i )©& (unsafe) & 5 \\1488 © ?%?( li, (long)i )©& 1 & 4 \\1489 © ?%?( (long unsigned)li,(long unsigned)i )©& 3 & 3 \\1490 © ?%?( (long long)li,(long long)i )©& 5 & 2 \\1491 © ?%?( (long long unsigned)li, (long long unsigned)i )©& 7 & 1 \\1494 \hline 1495 \lstinline$ ?%?( (int)li, i )$ & (unsafe) & 6 \\ 1496 \lstinline$ ?%?( (unsigned)li,(unsigned)i )$ & (unsafe) & 5 \\ 1497 \lstinline$ ?%?( li, (long)i )$ & 1 & 4 \\ 1498 \lstinline$ ?%?( (long unsigned)li,(long unsigned)i )$ & 3 & 3 \\ 1499 \lstinline$ ?%?( (long long)li,(long long)i )$ & 5 & 2 \\ 1500 \lstinline$ ?%?( (long long unsigned)li, (long long unsigned)i )$ & 7 & 1 \\ 1492 1501 \end{tabular} 1493 1502 \end{center} 1494 The best interpretation of ©eat_double( li, i )© is ©eat_double( (double)?%?(li, (long)i ))©, which has no unsafe conversions and the lowest total cost. 1495 1496 \begin{rationale} 1497 {\c11} defines most arithmetic operations to apply an \Index{integer promotion} to any argument that belongs to a type that has an \Index{integer conversion rank} less than that of ©int©. 1498 If ©s© is a ©short int©, ``©s *s©'' does not have type ©short int©; 1499 it is treated as ``©( (int)s ) * ( (int)s )©'', and has type ©int©. \CFA matches that pattern; 1500 it does not predefine ``©short ?*?( short, short )©''. 1503 The best interpretation of \lstinline$eat_double( li, i )$ is 1504 \lstinline$eat_double( (double)?%?(li, (long)i ))$, which has no unsafe conversions and the lowest total cost. 1505 1506 \begin{rationale} 1507 {\c11} defines most arithmetic operations to apply an \Index{integer promotion} to any argument that belongs to a type that has an \Index{integer conversion rank} less than that of \lstinline$int$.If 1508 \lstinline$s$ is a \lstinline$short int$, ``\lstinline$s *s$'' does not have type \lstinline$short int$; 1509 it is treated as ``\lstinline$( (int)s ) * ( (int)s )$'', and has type \lstinline$int$. \CFA matches that pattern; 1510 it does not predefine ``\lstinline$short ?*?( short, short )$''. 1501 1511 1502 1512 These ``missing'' operators limit polymorphism. … … 1507 1517 square( s ); 1508 1518 \end{lstlisting} 1509 Since \CFA does not define a multiplication operator for ©short int©, ©square( s )© is treated as ©square( (int)s )©, and the result has type ©int©. 1519 Since \CFA does not define a multiplication operator for \lstinline$short int$, 1520 \lstinline$square( s )$ is treated as \lstinline$square( (int)s )$, and the result has type 1521 \lstinline$int$. 1510 1522 This is mildly surprising, but it follows the {\c11} operator pattern. 1511 1523 … … 1516 1528 product( sa, 5); 1517 1529 \end{lstlisting} 1518 This has no valid interpretations, because \CFA has no conversion from ``array of ©short int©'' to ``array of ©int©''. 1530 This has no valid interpretations, because \CFA has no conversion from ``array of 1531 \lstinline$short int$'' to ``array of \lstinline$int$''. 1519 1532 The alternatives in such situations include 1520 1533 \begin{itemize} 1521 1534 \item 1522 Defining monomorphic overloadings of ©product© for ©short© and the other ``small'' types. 1523 \item 1524 Defining ``©short ?*?( short, short )©'' within the scope containing the call to ©product©. 1525 \item 1526 Defining ©product© to take as an argument a conversion function from the ``small'' type to the operator's argument type. 1535 Defining monomorphic overloadings of \lstinline$product$ for \lstinline$short$ and the other 1536 ``small'' types. 1537 \item 1538 Defining ``\lstinline$short ?*?( short, short )$'' within the scope containing the call to 1539 \lstinline$product$. 1540 \item 1541 Defining \lstinline$product$ to take as an argument a conversion function from the ``small'' type to the operator's argument type. 1527 1542 \end{itemize} 1528 1543 \end{rationale} … … 1534 1549 \lhs{additive-expression} 1535 1550 \rhs \nonterm{multiplicative-expression} 1536 \rhs \nonterm{additive-expression} ©+©\nonterm{multiplicative-expression}1537 \rhs \nonterm{additive-expression} ©-©\nonterm{multiplicative-expression}1551 \rhs \nonterm{additive-expression} \lstinline$+$ \nonterm{multiplicative-expression} 1552 \rhs \nonterm{additive-expression} \lstinline$-$ \nonterm{multiplicative-expression} 1538 1553 \end{syntax} 1539 1554 1540 1555 \rewriterules 1541 1556 \begin{lstlisting} 1542 a + b => ?+?( a, b )§\use{?+?}§1543 a - b => ?-?( a, b )§\use{?-?}§1557 a + b @\rewrite@ ?+?( a, b )@\use{?+?}@ 1558 a - b @\rewrite@ ?-?( a, b )@\use{?-?}@ 1544 1559 \end{lstlisting} 1545 1560 … … 1594 1609 * ?-?( _Atomic const restrict volatile T *, _Atomic const restrict volatile T * ); 1595 1610 \end{lstlisting} 1596 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int©there exist1611 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$ there exist 1597 1612 % Don't use predefined: keep this out of prelude.cf. 1598 1613 \begin{lstlisting} … … 1604 1619 1605 1620 \begin{rationale} 1606 ©ptrdiff_t© is an implementation-defined identifier defined in ©<stddef.h>©that is synonymous with a signed integral type that is large enough to hold the difference between two pointers.1621 \lstinline$ptrdiff_t$ is an implementation-defined identifier defined in \lstinline$<stddef.h>$ that is synonymous with a signed integral type that is large enough to hold the difference between two pointers. 1607 1622 It seems reasonable to use it for pointer addition as well. (This is technically a difference between \CFA and C, which only specifies that pointer addition uses an \emph{integral} argument.) Hence it is also used for subscripting, which is defined in terms of pointer addition. 1608 The {\c11} standard uses ©size_t© in several cases where a library function takes an argument that is used as a subscript, but ©size_t©is unsuitable here because it is an unsigned type.1623 The {\c11} standard uses \lstinline$size_t$ in several cases where a library function takes an argument that is used as a subscript, but \lstinline$size_t$ is unsuitable here because it is an unsigned type. 1609 1624 \end{rationale} 1610 1625 … … 1615 1630 \lhs{shift-expression} 1616 1631 \rhs \nonterm{additive-expression} 1617 \rhs \nonterm{shift-expression} ©<<©\nonterm{additive-expression}1618 \rhs \nonterm{shift-expression} ©>>©\nonterm{additive-expression}1632 \rhs \nonterm{shift-expression} \lstinline$<<$ \nonterm{additive-expression} 1633 \rhs \nonterm{shift-expression} \lstinline$>>$ \nonterm{additive-expression} 1619 1634 \end{syntax} 1620 1635 1621 \rewriterules 1622 \begin{lstlisting} 1623 a << b => ?<<?( a, b )§\use{?<<?}§1624 a >> b => ?>>?( a, b )§\use{?>>?}§1636 \rewriterules \use{?>>?}%use{?<<?} 1637 \begin{lstlisting} 1638 a << b @\rewrite@ ?<<?( a, b ) 1639 a >> b @\rewrite@ ?>>?( a, b ) 1625 1640 \end{lstlisting} 1626 1641 … … 1634 1649 long long unsigned int ?<<?( long long unsigned int, int ), ?>>?( long long unsigned int, int); 1635 1650 \end{lstlisting} 1636 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int©there exist1651 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$ there exist 1637 1652 % Don't use predefined: keep this out of prelude.cf. 1638 1653 \begin{lstlisting} … … 1654 1669 \lhs{relational-expression} 1655 1670 \rhs \nonterm{shift-expression} 1656 \rhs \nonterm{relational-expression} ©< ©\nonterm{shift-expression}1657 \rhs \nonterm{relational-expression} ©> ©\nonterm{shift-expression}1658 \rhs \nonterm{relational-expression} ©<=©\nonterm{shift-expression}1659 \rhs \nonterm{relational-expression} ©>=©\nonterm{shift-expression}1671 \rhs \nonterm{relational-expression} \lstinline$< $ \nonterm{shift-expression} 1672 \rhs \nonterm{relational-expression} \lstinline$> $ \nonterm{shift-expression} 1673 \rhs \nonterm{relational-expression} \lstinline$<=$ \nonterm{shift-expression} 1674 \rhs \nonterm{relational-expression} \lstinline$>=$ \nonterm{shift-expression} 1660 1675 \end{syntax} 1661 1676 1662 \rewriterules 1663 \begin{lstlisting} 1664 a < b => ?<?( a, b )§\use{?<?}§1665 a > b => ?>?( a, b )§\use{?>?}§1666 a <= b => ?<=?( a, b )§\use{?<=?}§1667 a >= b => ?>=?( a, b )§\use{?>=?}§1677 \rewriterules\use{?>?}\use{?>=?}%use{?<?}%use{?<=?} 1678 \begin{lstlisting} 1679 a < b @\rewrite@ ?<?( a, b ) 1680 a > b @\rewrite@ ?>?( a, b ) 1681 a <= b @\rewrite@ ?<=?( a, b ) 1682 a >= b @\rewrite@ ?>=?( a, b ) 1668 1683 \end{lstlisting} 1669 1684 … … 1697 1712 ?>=?( _Atomic const restrict volatile DT *, _Atomic const restrict volatile DT * ); 1698 1713 \end{lstlisting} 1699 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int©there exist1714 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$ there exist 1700 1715 % Don't use predefined: keep this out of prelude.cf. 1701 1716 \begin{lstlisting} … … 1715 1730 \lhs{equality-expression} 1716 1731 \rhs \nonterm{relational-expression} 1717 \rhs \nonterm{equality-expression} ©==©\nonterm{relational-expression}1718 \rhs \nonterm{equality-expression} ©!=©\nonterm{relational-expression}1732 \rhs \nonterm{equality-expression} \lstinline$==$ \nonterm{relational-expression} 1733 \rhs \nonterm{equality-expression} \lstinline$!=$ \nonterm{relational-expression} 1719 1734 \end{syntax} 1720 1735 1721 1736 \rewriterules 1722 1737 \begin{lstlisting} 1723 a == b => ?==?( a, b )§\use{?==?}§1724 a != b => ?!=?( a, b )§\use{?"!=?}§1738 a == b @\rewrite@ ?==?( a, b )@\use{?==?}@ 1739 a != b @\rewrite@ ?!=?( a, b )@\use{?"!=?}@ 1725 1740 \end{lstlisting} 1726 1741 … … 1775 1790 ?==?( forall( ftype FT2) FT2*, forall( ftype FT3) FT3 * ), ?!=?( forall( ftype FT2) FT2*, forall( ftype FT3) FT3 * ); 1776 1791 \end{lstlisting} 1777 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int©there exist1792 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$ there exist 1778 1793 % Don't use predefined: keep this out of prelude.cf. 1779 1794 \begin{lstlisting} … … 1783 1798 1784 1799 \begin{rationale} 1785 The polymorphic equality operations come in three styles: comparisons between pointers of compatible types, between pointers to ©void©and pointers to object types or incomplete types, and between the \Index{null pointer} constant and pointers to any type.1800 The polymorphic equality operations come in three styles: comparisons between pointers of compatible types, between pointers to \lstinline$void$ and pointers to object types or incomplete types, and between the \Index{null pointer} constant and pointers to any type. 1786 1801 In the last case, a special constraint rule for null pointer constant operands has been replaced by a consequence of the \CFA type system. 1787 1802 \end{rationale} … … 1804 1819 \lhs{AND-expression} 1805 1820 \rhs \nonterm{equality-expression} 1806 \rhs \nonterm{AND-expression} ©&©\nonterm{equality-expression}1821 \rhs \nonterm{AND-expression} \lstinline$&$ \nonterm{equality-expression} 1807 1822 \end{syntax} 1808 1823 1809 1824 \rewriterules 1810 1825 \begin{lstlisting} 1811 a & b => ?&?( a, b )§\use{?&?}§1826 a & b @\rewrite@ ?&?( a, b )@\use{?&?}@ 1812 1827 \end{lstlisting} 1813 1828 … … 1821 1836 long long unsigned int ?&?( long long unsigned int, long long unsigned int ); 1822 1837 \end{lstlisting} 1823 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int©there exist1838 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$ there exist 1824 1839 % Don't use predefined: keep this out of prelude.cf. 1825 1840 \begin{lstlisting} … … 1836 1851 \lhs{exclusive-OR-expression} 1837 1852 \rhs \nonterm{AND-expression} 1838 \rhs \nonterm{exclusive-OR-expression} ©^©\nonterm{AND-expression}1853 \rhs \nonterm{exclusive-OR-expression} \lstinline$^$ \nonterm{AND-expression} 1839 1854 \end{syntax} 1840 1855 1841 1856 \rewriterules 1842 1857 \begin{lstlisting} 1843 a ^ b => ?^?( a, b )§\use{?^?}§1858 a ^ b @\rewrite@ ?^?( a, b )@\use{?^?}@ 1844 1859 \end{lstlisting} 1845 1860 … … 1853 1868 long long unsigned int ?^?( long long unsigned int, long long unsigned int ); 1854 1869 \end{lstlisting} 1855 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int©there exist1870 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$ there exist 1856 1871 % Don't use predefined: keep this out of prelude.cf. 1857 1872 \begin{lstlisting} … … 1868 1883 \lhs{inclusive-OR-expression} 1869 1884 \rhs \nonterm{exclusive-OR-expression} 1870 \rhs \nonterm{inclusive-OR-expression} ©|©\nonterm{exclusive-OR-expression}1885 \rhs \nonterm{inclusive-OR-expression} \lstinline$|$ \nonterm{exclusive-OR-expression} 1871 1886 \end{syntax} 1872 1887 1873 \rewriterules 1874 \begin{lstlisting} 1875 a | b => ?|?( a, b )§\use{?"|?}§1888 \rewriterules\use{?"|?} 1889 \begin{lstlisting} 1890 a | b @\rewrite@ ?|?( a, b ) 1876 1891 \end{lstlisting} 1877 1892 … … 1885 1900 long long unsigned int ?|?( long long unsigned int, long long unsigned int ); 1886 1901 \end{lstlisting} 1887 For every extended integer type ©X© with \Index{integer conversion rank} greater than the rank of ©int©there exist1902 For every extended integer type \lstinline$X$ with \Index{integer conversion rank} greater than the rank of \lstinline$int$ there exist 1888 1903 % Don't use predefined: keep this out of prelude.cf. 1889 1904 \begin{lstlisting} … … 1900 1915 \lhs{logical-AND-expression} 1901 1916 \rhs \nonterm{inclusive-OR-expression} 1902 \rhs \nonterm{logical-AND-expression} ©&&©\nonterm{inclusive-OR-expression}1917 \rhs \nonterm{logical-AND-expression} \lstinline$&&$ \nonterm{inclusive-OR-expression} 1903 1918 \end{syntax} 1904 1919 1905 \semantics The operands of the expression ``©a && b©'' are treated as ``©(int)((a)!=0)©'' and ``©(int)((b)!=0)©'', which shall both be unambiguous. 1906 The expression has only one interpretation, which is of type ©int©. 1907 \begin{rationale} 1908 When the operands of a logical expression are values of built-in types, and ``©!=©'' has not been redefined for those types, the compiler can optimize away the function calls. 1909 1910 A common C idiom omits comparisons to ©0© in the controlling expressions of loops and ©if© statements. 1911 For instance, the loop below iterates as long as ©rp© points at a ©Rational© value that is non-zero. 1912 1913 \begin{lstlisting} 1914 extern otype Rational;§\use{Rational}§ 1915 extern const Rational 0;§\use{0}§ 1920 \semantics The operands of the expression ``\lstinline$a && b$'' are treated as 1921 ``\lstinline$(int)((a)!=0)$'' and ``\lstinline$(int)((b)!=0)$'', which shall both be unambiguous. 1922 The expression has only one interpretation, which is of type \lstinline$int$. 1923 \begin{rationale} 1924 When the operands of a logical expression are values of built-in types, and ``\lstinline$!=$'' has not been redefined for those types, the compiler can optimize away the function calls. 1925 1926 A common C idiom omits comparisons to \lstinline$0$ in the controlling expressions of loops and 1927 \lstinline$if$ statements. 1928 For instance, the loop below iterates as long as \lstinline$rp$ points at a \lstinline$Rational$ value that is non-zero. 1929 1930 \begin{lstlisting} 1931 extern otype Rational;@\use{Rational}@ 1932 extern const Rational 0;@\use{0}@ 1916 1933 extern int ?!=?( Rational, Rational ); 1917 1934 Rational *rp; 1918 1935 while ( rp && *rp ) { ... } 1919 1936 \end{lstlisting} 1920 The logical expression calls the ©Rational© inequality operator, passing it ©*rp© and the ©Rational 0©, and getting a 1 or 0 as a result.1921 In contrast, {\CC} would apply a programmer-defined ©Rational©-to-©int© conversion to ©*rp©in the equivalent situation.1922 The conversion to ©int©would produce a general integer value, which is unfortunate, and possibly dangerous if the conversion was not written with this situation in mind.1937 The logical expression calls the \lstinline$Rational$ inequality operator, passing it \lstinline$*rp$ and the \lstinline$Rational 0$, and getting a 1 or 0 as a result. 1938 In contrast, {\CC} would apply a programmer-defined \lstinline$Rational$-to-\lstinline$int$ conversion to \lstinline$*rp$ in the equivalent situation. 1939 The conversion to \lstinline$int$ would produce a general integer value, which is unfortunate, and possibly dangerous if the conversion was not written with this situation in mind. 1923 1940 \end{rationale} 1924 1941 … … 1929 1946 \lhs{logical-OR-expression} 1930 1947 \rhs \nonterm{logical-AND-expression} 1931 \rhs \nonterm{logical-OR-expression} ©||©\nonterm{logical-AND-expression}1948 \rhs \nonterm{logical-OR-expression} \lstinline$||$ \nonterm{logical-AND-expression} 1932 1949 \end{syntax} 1933 1950 1934 1951 \semantics 1935 1952 1936 The operands of the expression `` ©a || b©'' are treated as ``©(int)((a)!=0)©'' and ``©(int)((b))!=0)©'', which shall both be unambiguous.1937 The expression has only one interpretation, which is of type ©int©.1953 The operands of the expression ``\lstinline$a || b$'' are treated as ``\lstinline$(int)((a)!=0)$'' and ``\lstinline$(int)((b))!=0)$'', which shall both be unambiguous. 1954 The expression has only one interpretation, which is of type \lstinline$int$. 1938 1955 1939 1956 … … 1943 1960 \lhs{conditional-expression} 1944 1961 \rhs \nonterm{logical-OR-expression} 1945 \rhs \nonterm{logical-OR-expression} ©?©\nonterm{expression}1946 ©:©\nonterm{conditional-expression}1962 \rhs \nonterm{logical-OR-expression} \lstinline$?$ \nonterm{expression} 1963 \lstinline$:$ \nonterm{conditional-expression} 1947 1964 \end{syntax} 1948 1965 1949 1966 \semantics 1950 In the conditional expression\use{?:} `` ©a?b:c©'', if the second and third operands both have an interpretation with ©void© type, then the expression has an interpretation with type ©void©, equivalent to1967 In the conditional expression\use{?:} ``\lstinline$a?b:c$'', if the second and third operands both have an interpretation with \lstinline$void$ type, then the expression has an interpretation with type \lstinline$void$, equivalent to 1951 1968 \begin{lstlisting} 1952 1969 ( int)(( a)!=0) ? ( void)( b) : ( void)( c) 1953 1970 \end{lstlisting} 1954 1971 1955 If the second and third operands both have interpretations with non- ©void© types, the expression is treated as if it were the call ``©cond((a)!=0, b, c)©'', with ©cond©declared as1972 If the second and third operands both have interpretations with non-\lstinline$void$ types, the expression is treated as if it were the call ``\lstinline$cond((a)!=0, b, c)$'', with \lstinline$cond$ declared as 1956 1973 \begin{lstlisting} 1957 1974 forall( otype T ) T cond( int, T, T ); … … 2005 2022 rand() ? i : l; 2006 2023 \end{lstlisting} 2007 The best interpretation infers the expression's type to be ©long© and applies the safe ©int©-to-©long© conversion to ©i©. 2024 The best interpretation infers the expression's type to be \lstinline$long$ and applies the safe 2025 \lstinline$int$-to-\lstinline$long$ conversion to \lstinline$i$. 2008 2026 2009 2027 \begin{lstlisting} … … 2012 2030 rand() ? cip : vip; 2013 2031 \end{lstlisting} 2014 The expression has type ©const volatile int *©, with safe conversions applied to the second and third operands to add ©volatile© and ©const©qualifiers, respectively.2032 The expression has type \lstinline$const volatile int *$, with safe conversions applied to the second and third operands to add \lstinline$volatile$ and \lstinline$const$ qualifiers, respectively. 2015 2033 2016 2034 \begin{lstlisting} 2017 2035 rand() ? cip : 0; 2018 2036 \end{lstlisting} 2019 The expression has type ©const int *©, with a specialization conversion applied to ©0©. 2037 The expression has type \lstinline$const int *$, with a specialization conversion applied to 2038 \lstinline$0$. 2020 2039 2021 2040 … … 2028 2047 \nonterm{assignment-expression} 2029 2048 \lhs{assignment-operator} one of 2030 \rhs ©=©\ \ ©*=©\ \ ©/=©\ \ ©%=©\ \ ©+=©\ \ ©-=©\ \ ©<<=©\ \ ©>>=©\ \ ©&=©\ \ ©^=©\ \ ©|=© 2049 \rhs \lstinline$=$\ \ \lstinline$*=$\ \ \lstinline$/=$\ \ \lstinline$%=$\ \ \lstinline$+=$\ \ \lstinline$-=$\ \ 2050 \lstinline$<<=$\ \ \lstinline$>>=$\ \ \lstinline$&=$\ \ \lstinline$^=$\ \ \lstinline$|=$ 2031 2051 \end{syntax} 2032 2052 2033 2053 \rewriterules 2034 Let `` ©<-©'' be any of the assignment operators.2054 Let ``\(\leftarrow\)'' be any of the assignment operators. 2035 2055 Then 2036 \use{?=?}\use{?*=?}\use{?/=?}\use{?%=?}\use{?+=?}\use{?-=?}\use{?>>=?}\use{?&=?}\use{?^=?}\use{?"|=?}%use{?<<=?} 2037 \begin{lstlisting} 2038 a <- b => ?<-?( &( a ), b ) 2056 \use{?=?}\use{?*=?}\use{?/=?}\use{?%=?}\use{?+=?}\use{?-=?} 2057 \use{?>>=?}\use{?&=?}\use{?^=?}\use{?"|=?}%use{?<<=?} 2058 \begin{lstlisting} 2059 a @$\leftarrow$@ b @\rewrite@ ?@$\leftarrow$@?( &( a ), b ) 2039 2060 \end{lstlisting} 2040 2061 2041 2062 \semantics 2042 2063 Each interpretation of the left operand of an assignment expression is considered separately. 2043 For each interpretation that is a bit-field or is declared with the ©register©storage class specifier, the expression has one valid interpretation, with the type of the left operand.2064 For each interpretation that is a bit-field or is declared with the \lstinline$register$ storage class specifier, the expression has one valid interpretation, with the type of the left operand. 2044 2065 The right operand is cast to that type, and the assignment expression is ambiguous if either operand is. 2045 2066 For the remaining interpretations, the expression is rewritten, and the interpretations of the assignment expression are the interpretations of the corresponding function call. … … 2274 2295 \end{lstlisting} 2275 2296 \begin{rationale} 2276 The pattern of overloadings for simple assignment resembles that of pointer increment and decrement, except that the polymorphic pointer assignment functions declare a ©dtype© parameter, instead of a ©type©parameter, because the left operand may be a pointer to an incomplete type.2277 \end{rationale} 2278 2279 For every complete structure or union type ©S©there exist2297 The pattern of overloadings for simple assignment resembles that of pointer increment and decrement, except that the polymorphic pointer assignment functions declare a \lstinline$dtype$ parameter, instead of a \lstinline$type$ parameter, because the left operand may be a pointer to an incomplete type. 2298 \end{rationale} 2299 2300 For every complete structure or union type \lstinline$S$ there exist 2280 2301 % Don't use predefined: keep this out of prelude.cf. 2281 2302 \begin{lstlisting} … … 2283 2304 \end{lstlisting} 2284 2305 2285 For every extended integer type ©X©there exist2306 For every extended integer type \lstinline$X$ there exist 2286 2307 % Don't use predefined: keep this out of prelude.cf. 2287 2308 \begin{lstlisting} … … 2289 2310 \end{lstlisting} 2290 2311 2291 For every complete enumerated type ©E©there exist2312 For every complete enumerated type \lstinline$E$ there exist 2292 2313 % Don't use predefined: keep this out of prelude.cf. 2293 2314 \begin{lstlisting} … … 2295 2316 \end{lstlisting} 2296 2317 \begin{rationale} 2297 The right-hand argument is ©int© because enumeration constants have type ©int©.2318 The right-hand argument is \lstinline$int$ because enumeration constants have type \lstinline$int$. 2298 2319 \end{rationale} 2299 2320 … … 2556 2577 \end{lstlisting} 2557 2578 2558 For every extended integer type ©X©there exist2579 For every extended integer type \lstinline$X$ there exist 2559 2580 % Don't use predefined: keep this out of prelude.cf. 2560 2581 \begin{lstlisting} … … 2571 2592 \end{lstlisting} 2572 2593 2573 For every complete enumerated type ©E©there exist2594 For every complete enumerated type \lstinline$E$ there exist 2574 2595 % Don't use predefined: keep this out of prelude.cf. 2575 2596 \begin{lstlisting} … … 2592 2613 \lhs{expression} 2593 2614 \rhs \nonterm{assignment-expression} 2594 \rhs \nonterm{expression} ©,©\nonterm{assignment-expression}2615 \rhs \nonterm{expression} \lstinline$,$ \nonterm{assignment-expression} 2595 2616 \end{syntax} 2596 2617 2597 2618 \semantics 2598 In the comma expression ``©a, b©'', the first operand is interpreted as ``©( void )(a)©'', which shall be unambiguous\index{ambiguous interpretation}. 2619 In the comma expression ``\lstinline$a, b$'', the first operand is interpreted as 2620 ``\lstinline$( void )(a)$'', which shall be unambiguous\index{ambiguous interpretation}. 2599 2621 The interpretations of the expression are the interpretations of the second operand. 2600 2622 … … 2631 2653 { ... } 2632 2654 \end{lstlisting} 2633 Without the rule, ©Complex©would be a type in the first case, and a parameter name in the second.2655 Without the rule, \lstinline$Complex$ would be a type in the first case, and a parameter name in the second. 2634 2656 \end{rationale} 2635 2657 … … 2657 2679 \examples 2658 2680 \begin{lstlisting} 2659 struct point { §\impl{point}§2681 struct point {@\impl{point}@ 2660 2682 int x, y; 2661 2683 }; 2662 struct color_point { §\impl{color_point}§2684 struct color_point {@\impl{color_point}@ 2663 2685 enum { RED, BLUE, GREEN } color; 2664 2686 struct point; … … 2667 2689 cp.x = 0; 2668 2690 cp.color = RED; 2669 struct literal { §\impl{literal}§2691 struct literal {@\impl{literal}@ 2670 2692 enum { NUMBER, STRING } tag; 2671 2693 union { … … 2688 2710 \begin{syntax} 2689 2711 \lhs{forall-specifier} 2690 \rhs ©forall© ©(© \nonterm{type-parameter-list} ©)©2712 \rhs \lstinline$forall$ \lstinline$($ \nonterm{type-parameter-list} \lstinline$)$ 2691 2713 \end{syntax} 2692 2714 … … 2700 2722 } mkPair( T, T ); // illegal 2701 2723 \end{lstlisting} 2702 If an instance of ©struct Pair©was declared later in the current scope, what would the members' type be?2724 If an instance of \lstinline$struct Pair$ was declared later in the current scope, what would the members' type be? 2703 2725 \end{rationale} 2704 2726 \end{comment} … … 2707 2729 The \nonterm{type-parameter-list}s and assertions of the \nonterm{forall-specifier}s declare type identifiers, function and object identifiers with \Index{no linkage}. 2708 2730 2709 If, in the declaration ``©T D©'', ©T© contains \nonterm{forall-specifier}s and ©D© has the form 2710 \begin{lstlisting} 2711 D( §\normalsize\nonterm{parameter-type-list}§ ) 2712 \end{lstlisting} then a type identifier declared by one of the \nonterm{forall-specifier}s is an \define{inferred parameter} of the function declarator if and only if it is not an inferred parameter of a function declarator in ©D©, and it is used in the type of a parameter in the following 2713 \nonterm{type-parameter-list} or it and an inferred parameter are used as arguments of a \Index{specification} in one of the \nonterm{forall-specifier}s. 2731 If, in the declaration ``\lstinline$T D$'', \lstinline$T$ contains \nonterm{forall-specifier}s and 2732 \lstinline$D$ has the form 2733 \begin{lstlisting} 2734 D( @\normalsize\nonterm{parameter-type-list}@ ) 2735 \end{lstlisting} then a type identifier declared by one of the \nonterm{forall-specifier}s is an \define{inferred parameter} of the function declarator if and only if it is not an inferred parameter of a function declarator in \lstinline$D$, and it is used in the type of a parameter in the following 2736 \nonterm{type-parameter-list} or it and an inferred parameter are used as arguments of a 2737 \Index{specification} in one of the \nonterm{forall-specifier}s. 2714 2738 The identifiers declared by assertions that use an inferred parameter of a function declarator are \Index{assertion parameter}s of that function declarator. 2715 2739 … … 2720 2744 If this restriction were lifted, it would be possible to write 2721 2745 \begin{lstlisting} 2722 forall( otype T ) T * alloc( void );§\use{alloc}§ int *p = alloc(); 2723 \end{lstlisting} 2724 Here ©alloc()© would receive ©int© as an inferred argument, and return an ©int *©. 2725 In general, if a call to ©alloc()© is a subexpression of an expression involving polymorphic functions and overloaded identifiers, there could be considerable distance between the call and the subexpression that causes ©T© to be bound. 2726 2727 With the current restriction, ©alloc()© must be given an argument that determines ©T©: 2728 \begin{lstlisting} 2729 forall( otype T ) T * alloc( T initial_value );§\use{alloc}§ 2746 forall( otype T ) T * alloc( void );@\use{alloc}@ int *p = alloc(); 2747 \end{lstlisting} 2748 Here \lstinline$alloc()$ would receive \lstinline$int$ as an inferred argument, and return an 2749 \lstinline$int *$. 2750 In general, if a call to \lstinline$alloc()$ is a subexpression of an expression involving polymorphic functions and overloaded identifiers, there could be considerable distance between the call and the subexpression that causes \lstinline$T$ to be bound. 2751 2752 With the current restriction, \lstinline$alloc()$ must be given an argument that determines 2753 \lstinline$T$: 2754 \begin{lstlisting} 2755 forall( otype T ) T * alloc( T initial_value );@\use{alloc}@ 2730 2756 \end{lstlisting} 2731 2757 \end{rationale} … … 2733 2759 2734 2760 If a function declarator is part of a function definition, its inferred parameters and assertion parameters have \Index{block scope}; 2735 otherwise, identifiers declared by assertions have a \define{declaration scope}, which terminates at the end of the \nonterm{declaration}. 2761 otherwise, identifiers declared by assertions have a 2762 \define{declaration scope}, which terminates at the end of the \nonterm{declaration}. 2736 2763 2737 2764 A function type that has at least one inferred parameter is a \define{polymorphic function} type. … … 2742 2769 Let $f$ and $g$ be two polymorphic function types with the same number of inferred parameters, and let $f_i$ and $g_i$ be the inferred parameters of $f$ and $g$ in their order of occurance in the function types' \nonterm{parameter-type-list}s. 2743 2770 Let $f'$ be $f$ with every occurrence of $f_i$ replaced by $g_i$, for all $i$. 2744 Then $f$ and $g$ are \Index{compatible type}s if $f'$'s and $g$'s return types and parameter lists are compatible, and if for every assertion parameter of $f'$ there is an assertion parameter in $g$ with the same identifier and compatible type, and vice versa. 2771 Then $f$ and $g$ are 2772 \Index{compatible type}s if $f'$'s and $g$'s return types and parameter lists are compatible, and if for every assertion parameter of $f'$ there is an assertion parameter in $g$ with the same identifier and compatible type, and vice versa. 2745 2773 2746 2774 \examples … … 2750 2778 forall( otype T ) T fT( T ); 2751 2779 \end{lstlisting} 2752 ©fi()© takes an ©int© and returns an ©int©. ©fT()© takes a ©T© and returns a ©T©, for any type ©T©. 2780 \lstinline$fi()$ takes an \lstinline$int$ and returns an \lstinline$int$. \lstinline$fT()$ takes a 2781 \lstinline$T$ and returns a \lstinline$T$, for any type \lstinline$T$. 2753 2782 \begin{lstlisting} 2754 2783 int (*pfi )( int ) = fi; 2755 2784 forall( otype T ) T (*pfT )( T ) = fT; 2756 2785 \end{lstlisting} 2757 ©pfi© and ©pfT© are pointers to functions. ©pfT©is not polymorphic, but the function it points at is.2786 \lstinline$pfi$ and \lstinline$pfT$ are pointers to functions. \lstinline$pfT$ is not polymorphic, but the function it points at is. 2758 2787 \begin{lstlisting} 2759 2788 int (*fvpfi( void ))( int ) { … … 2764 2793 } 2765 2794 \end{lstlisting} 2766 ©fvpfi()© and ©fvpfT()© are functions taking no arguments and returning pointers to functions. ©fvpfT()©is monomorphic, but the function that its return value points at is polymorphic.2795 \lstinline$fvpfi()$ and \lstinline$fvpfT()$ are functions taking no arguments and returning pointers to functions. \lstinline$fvpfT()$ is monomorphic, but the function that its return value points at is polymorphic. 2767 2796 \begin{lstlisting} 2768 2797 forall( otype T ) int ( *fTpfi( T ) )( int ); … … 2770 2799 forall( otype T, otype U ) U ( *fTpfU( T ) )( U ); 2771 2800 \end{lstlisting} 2772 ©fTpfi()© is a polymorphic function that returns a pointer to a monomorphic function taking an integer and returning an integer. 2773 It could return ©pfi©. ©fTpfT()© is subtle: it is a polymorphic function returning a \emph{monomorphic} function taking and returning 2774 ©T©, where ©T© is an inferred parameter of ©fTpfT()©. 2775 For instance, in the expression ``©fTpfT(17)©'', ©T© is inferred to be ©int©, and the returned value would have type ©int ( * )( int )©. ``©fTpfT(17)(13)©'' and ``©fTpfT("yes")("no")©'' are legal, but ``©fTpfT(17)("no")©'' is illegal. 2776 ©fTpfU()© is polymorphic ( in type ©T©), and returns a pointer to a function that is polymorphic ( in type ©U©). ``©f5(17)("no")©'' is a legal expression of type ©char *©. 2801 \lstinline$fTpfi()$ is a polymorphic function that returns a pointer to a monomorphic function taking an integer and returning an integer. 2802 It could return \lstinline$pfi$. \lstinline$fTpfT()$ is subtle: it is a polymorphic function returning a \emph{monomorphic} function taking and returning 2803 \lstinline$T$, where \lstinline$T$ is an inferred parameter of \lstinline$fTpfT()$. 2804 For instance, in the expression ``\lstinline$fTpfT(17)$'', \lstinline$T$ is inferred to be \lstinline$int$, and the returned value would have type \lstinline$int ( * )( int )$. ``\lstinline$fTpfT(17)(13)$'' and 2805 ``\lstinline$fTpfT("yes")("no")$'' are legal, but ``\lstinline$fTpfT(17)("no")$'' is illegal. 2806 \lstinline$fTpfU()$ is polymorphic ( in type \lstinline$T$), and returns a pointer to a function that is polymorphic ( in type \lstinline$U$). ``\lstinline$f5(17)("no")$'' is a legal expression of type 2807 \lstinline$char *$. 2777 2808 \begin{lstlisting} 2778 2809 forall( otype T, otype U, otype V ) U * f( T *, U, V * const ); 2779 2810 forall( otype U, otype V, otype W ) U * g( V *, U, W * const ); 2780 2811 \end{lstlisting} 2781 The functions ©f()© and ©g()©have compatible types.2812 The functions \lstinline$f()$ and \lstinline$g()$ have compatible types. 2782 2813 Let \(f\) and \(g\) be their types; 2783 then \(f_1\) = ©T©, \(f_2\) = ©U©, \(f_3\) = ©V©, \(g_1\)2784 = ©V©, \(g_2\) = ©U©, and \(g_3\) = ©W©.2814 then \(f_1\) = \lstinline$T$, \(f_2\) = \lstinline$U$, \(f_3\) = \lstinline$V$, \(g_1\) 2815 = \lstinline$V$, \(g_2\) = \lstinline$U$, and \(g_3\) = \lstinline$W$. 2785 2816 Replacing every \(f_i\) by \(g_i\) in \(f\) gives 2786 2817 \begin{lstlisting} … … 2788 2819 \end{lstlisting} which has a return type and parameter list that is compatible with \(g\). 2789 2820 \begin{rationale} 2790 The word `` ©type©'' in a forall specifier is redundant at the moment, but I want to leave room for inferred parameters of ordinary types in case parameterized types get added one day.2821 The word ``\lstinline$type$'' in a forall specifier is redundant at the moment, but I want to leave room for inferred parameters of ordinary types in case parameterized types get added one day. 2791 2822 2792 2823 Even without parameterized types, I might try to allow … … 2814 2845 \subsection{Type qualifiers} 2815 2846 2816 \CFA defines a new type qualifier ©lvalue©\impl{lvalue}\index{lvalue}.2847 \CFA defines a new type qualifier \lstinline$lvalue$\impl{lvalue}\index{lvalue}. 2817 2848 \begin{syntax} 2818 2849 \oldlhs{type-qualifier} 2819 \rhs ©lvalue©2850 \rhs \lstinline$lvalue$ 2820 2851 \end{syntax} 2821 2852 2822 2853 \constraints 2823 \ Indexc{restrict} Types other than type parameters and pointer types whose referenced type is an object type shall not be restrict-qualified.2854 \lstinline$restrict$\index{register@{\lstinline$restrict$}} Types other than type parameters and pointer types whose referenced type is an object type shall not be restrict-qualified. 2824 2855 2825 2856 \semantics 2826 An object's type may be a restrict-qualified type parameter. 2827 ©restrict© does not establish any special semantics in that case. 2857 An object's type may be a restrict-qualified type parameter. \lstinline$restrict$ does not establish any special semantics in that case. 2828 2858 2829 2859 \begin{rationale} … … 2831 2861 \end{rationale} 2832 2862 2833 ©lvalue© may be used to qualify the return type of a function type. 2834 Let ©T© be an unqualified version of a type; 2835 then the result of calling a function with return type ©lvalue T© is a \Index{modifiable lvalue} of type ©T©. 2836 ©const©\use{const} and ©volatile©\use{volatile} qualifiers may also be added to indicate that the function result is a constant or volatile lvalue. 2837 \begin{rationale} 2838 The ©const© and ©volatile© qualifiers can only be sensibly used to qualify the return type of a function if the ©lvalue© qualifier is also used. 2863 \lstinline$lvalue$ may be used to qualify the return type of a function type. 2864 Let \lstinline$T$ be an unqualified version of a type; 2865 then the result of calling a function with return type 2866 \lstinline$lvalue T$ is a \Index{modifiable lvalue} of type \lstinline$T$. 2867 \lstinline$const$\use{const} and \lstinline$volatile$\use{volatile} qualifiers may also be added to indicate that the function result is a constant or volatile lvalue. 2868 \begin{rationale} 2869 The \lstinline$const$ and \lstinline$volatile$ qualifiers can only be sensibly used to qualify the return type of a function if the \lstinline$lvalue$ qualifier is also used. 2839 2870 \end{rationale} 2840 2871 … … 2843 2874 2844 2875 \begin{rationale} 2845 ©lvalue© provides some of the functionality of {\CC}'s ``©T&©'' ( reference to object of type ©T©) type.2876 \lstinline$lvalue$ provides some of the functionality of {\CC}'s ``\lstinline$T&$'' ( reference to object of type \lstinline$T$) type. 2846 2877 Reference types have four uses in {\CC}. 2847 2878 \begin{itemize} 2848 2879 \item 2849 They are necessary for user-defined operators that return lvalues, such as ``subscript'' and ``dereference''. 2850 2851 \item 2852 A reference can be used to define an alias for a complicated lvalue expression, as a way of getting some of the functionality of the Pascal ©with© statement. 2880 They are necessary for user-defined operators that return lvalues, such as ``subscript'' and 2881 ``dereference''. 2882 2883 \item 2884 A reference can be used to define an alias for a complicated lvalue expression, as a way of getting some of the functionality of the Pascal \lstinline$with$ statement. 2853 2885 The following {\CC} code gives an example. 2854 2886 \begin{lstlisting} … … 2863 2895 A reference parameter can be used to allow a function to modify an argument without forcing the caller to pass the address of the argument. 2864 2896 This is most useful for user-defined assignment operators. 2865 In {\CC}, plain assignment is done by a function called `` ©operator=©'', and the two expressions2897 In {\CC}, plain assignment is done by a function called ``\lstinline$operator=$'', and the two expressions 2866 2898 \begin{lstlisting} 2867 2899 a = b; 2868 2900 operator=( a, b ); 2869 2901 \end{lstlisting} are equivalent. 2870 If ©a© and ©b© are of type ©T©, then the first parameter of ©operator=© must have type ``©T&©''. 2871 It cannot have type ©T©, because then assignment couldn't alter the variable, and it can't have type ``©T *©'', because the assignment would have to be written ``©&a = b;©''. 2872 2873 In the case of user-defined operators, this could just as well be handled by using pointer types and by changing the rewrite rules so that ``©a = b;©'' is equivalent to ``©operator=(&( a), b )©''. 2874 Reference parameters of ``normal'' functions are Bad Things, because they remove a useful property of C function calls: an argument can only be modified by a function if it is preceded by ``©&©''. 2902 If \lstinline$a$ and \lstinline$b$ are of type \lstinline$T$, then the first parameter of \lstinline$operator=$ must have type ``\lstinline$T&$''. 2903 It cannot have type 2904 \lstinline$T$, because then assignment couldn't alter the variable, and it can't have type 2905 ``\lstinline$T *$'', because the assignment would have to be written ``\lstinline$&a = b;$''. 2906 2907 In the case of user-defined operators, this could just as well be handled by using pointer types and by changing the rewrite rules so that ``\lstinline$a = b;$'' is equivalent to 2908 ``\lstinline$operator=(&( a), b )$''. 2909 Reference parameters of ``normal'' functions are Bad Things, because they remove a useful property of C function calls: an argument can only be modified by a function if it is preceded by ``\lstinline$&$''. 2875 2910 2876 2911 \item 2877 2912 References to \Index{const-qualified} types can be used instead of value parameters. Given the 2878 {\CC} function call `` ©fiddle( a_thing )©'', where the type of ©a_thing©is2879 ©Thing©, the type of ©fiddle©could be either of2913 {\CC} function call ``\lstinline$fiddle( a_thing )$'', where the type of \lstinline$a_thing$ is 2914 \lstinline$Thing$, the type of \lstinline$fiddle$ could be either of 2880 2915 \begin{lstlisting} 2881 2916 void fiddle( Thing ); 2882 2917 void fiddle( const Thing & ); 2883 2918 \end{lstlisting} 2884 If the second form is used, then constructors and destructors are not invoked to create a temporary variable at the call site ( and it is bad style for the caller to make any assumptions about such things), and within ©fiddle©the parameter is subject to the usual problems caused by aliases.2885 The reference form might be chosen for efficiency's sake if ©Thing©s are too large or their constructors or destructors are too expensive.2919 If the second form is used, then constructors and destructors are not invoked to create a temporary variable at the call site ( and it is bad style for the caller to make any assumptions about such things), and within \lstinline$fiddle$ the parameter is subject to the usual problems caused by aliases. 2920 The reference form might be chosen for efficiency's sake if \lstinline$Thing$s are too large or their constructors or destructors are too expensive. 2886 2921 An implementation may switch between them without causing trouble for well-behaved clients. 2887 2922 This leaves the implementor to define ``too large'' and ``too expensive''. … … 2891 2926 void fiddle( const volatile Thing ); 2892 2927 \end{lstlisting} with call-by-reference. 2893 Since it knows all about the size of ©Thing©s and the parameter passing mechanism, it should be able to come up with a better definition of ``too large'', and may be able to make a good guess at ``too expensive''.2928 Since it knows all about the size of \lstinline$Thing$s and the parameter passing mechanism, it should be able to come up with a better definition of ``too large'', and may be able to make a good guess at ``too expensive''. 2894 2929 \end{itemize} 2895 2930 … … 2911 2946 \begin{syntax} 2912 2947 \lhs{spec-definition} 2913 \rhs ©spec©\nonterm{identifier}2914 ©(© \nonterm{type-parameter-list} ©)©2915 ©{© \nonterm{spec-declaration-list}\opt ©}©2948 \rhs \lstinline$spec$ \nonterm{identifier} 2949 \lstinline$($ \nonterm{type-parameter-list} \lstinline$)$ 2950 \lstinline${$ \nonterm{spec-declaration-list}\opt \lstinline$}$ 2916 2951 \lhs{spec-declaration-list} 2917 \rhs \nonterm{spec-declaration} ©;©2918 \rhs \nonterm{spec-declaration-list} \nonterm{spec-declaration} ©;©2952 \rhs \nonterm{spec-declaration} \lstinline$;$ 2953 \rhs \nonterm{spec-declaration-list} \nonterm{spec-declaration} \lstinline$;$ 2919 2954 \lhs{spec-declaration} 2920 2955 \rhs \nonterm{specifier-qualifier-list} \nonterm{declarator-list} 2921 2956 \lhs{declarator-list} 2922 2957 \rhs \nonterm{declarator} 2923 \rhs \nonterm{declarator-list} ©,©\nonterm{declarator}2958 \rhs \nonterm{declarator-list} \lstinline$,$ \nonterm{declarator} 2924 2959 \end{syntax} 2925 2960 \begin{rationale} … … 2943 2978 \rhs \nonterm{assertion-list} \nonterm{assertion} 2944 2979 \lhs{assertion} 2945 \rhs ©|© \nonterm{identifier} ©(© \nonterm{type-name-list} ©)©2946 \rhs ©|©\nonterm{spec-declaration}2980 \rhs \lstinline$|$ \nonterm{identifier} \lstinline$($ \nonterm{type-name-list} \lstinline$)$ 2981 \rhs \lstinline$|$ \nonterm{spec-declaration} 2947 2982 \lhs{type-name-list} 2948 2983 \rhs \nonterm{type-name} 2949 \rhs \nonterm{type-name-list} ©,©\nonterm{type-name}2984 \rhs \nonterm{type-name-list} \lstinline$,$ \nonterm{type-name} 2950 2985 \end{syntax} 2951 2986 … … 2954 2989 The \nonterm{type-name-list} shall contain one \nonterm{type-name} argument for each \nonterm{type-parameter} in that specification's \nonterm{spec-parameter-list}. 2955 2990 If the 2956 \nonterm{type-parameter} uses type-class ©type©\use{type}, the argument shall be the type name of an \Index{object type};2957 if it uses ©dtype©, the argument shall be the type name of an object type or an \Index{incomplete type};2958 and if it uses ©ftype©, the argument shall be the type name of a \Index{function type}.2991 \nonterm{type-parameter} uses type-class \lstinline$type$\use{type}, the argument shall be the type name of an \Index{object type}; 2992 if it uses \lstinline$dtype$, the argument shall be the type name of an object type or an \Index{incomplete type}; 2993 and if it uses \lstinline$ftype$, the argument shall be the type name of a \Index{function type}. 2959 2994 2960 2995 \semantics 2961 An \define{assertion} is a declaration of a collection of objects and functions, called \define{assertion parameters}. 2996 An \define{assertion} is a declaration of a collection of objects and functions, called 2997 \define{assertion parameters}. 2962 2998 2963 2999 The assertion parameters produced by an assertion that applies the name of a specification to type arguments are found by taking the declarations specified in the specification and treating each of the specification's parameters as a synonym for the corresponding \nonterm{type-name} argument. … … 2968 3004 \examples 2969 3005 \begin{lstlisting} 2970 forall( otype T | T ?*?( T, T )) §\use{?*?}§2971 T square( T val ) { §\impl{square}§3006 forall( otype T | T ?*?( T, T ))@\use{?*?}@ 3007 T square( T val ) {@\impl{square}@ 2972 3008 return val + val; 2973 3009 } 2974 trait summable( otype T ) { §\impl{summable}§2975 T ?+=?( T *, T ); §\use{?+=?}§2976 const T 0; §\use{0}§3010 trait summable( otype T ) {@\impl{summable}@ 3011 T ?+=?( T *, T );@\use{?+=?}@ 3012 const T 0;@\use{0}@ 2977 3013 }; 2978 trait list_of( otype List, otype Element ) { §\impl{list_of}§3014 trait list_of( otype List, otype Element ) {@\impl{list_of}@ 2979 3015 Element car( List ); 2980 3016 List cdr( List ); … … 2985 3021 trait sum_list( otype List, otype Element | summable( Element ) | list_of( List, Element ) ) {}; 2986 3022 \end{lstlisting} 2987 ©sum_list©contains seven declarations, which describe a list whose elements can be added up.2988 The assertion `` ©|sum_list( i_list, int )©''\use{sum_list} produces the assertion parameters3023 \lstinline$sum_list$ contains seven declarations, which describe a list whose elements can be added up. 3024 The assertion ``\lstinline$|sum_list( i_list, int )$''\use{sum_list} produces the assertion parameters 2989 3025 \begin{lstlisting} 2990 3026 int ?+=?( int *, int ); … … 3003 3039 \lhs{type-parameter-list} 3004 3040 \rhs \nonterm{type-parameter} 3005 \rhs \nonterm{type-parameter-list} ©,©\nonterm{type-parameter}3041 \rhs \nonterm{type-parameter-list} \lstinline$,$ \nonterm{type-parameter} 3006 3042 \lhs{type-parameter} 3007 3043 \rhs \nonterm{type-class} \nonterm{identifier} \nonterm{assertion-list}\opt 3008 3044 \lhs{type-class} 3009 \rhs ©type©3010 \rhs ©dtype©3011 \rhs ©ftype©3045 \rhs \lstinline$type$ 3046 \rhs \lstinline$dtype$ 3047 \rhs \lstinline$ftype$ 3012 3048 \lhs{type-declaration} 3013 \rhs \nonterm{storage-class-specifier}\opt ©type©\nonterm{type-declarator-list} \verb|;|3049 \rhs \nonterm{storage-class-specifier}\opt \lstinline$type$ \nonterm{type-declarator-list} \verb|;| 3014 3050 \lhs{type-declarator-list} 3015 3051 \rhs \nonterm{type-declarator} 3016 \rhs \nonterm{type-declarator-list} ©,©\nonterm{type-declarator}3052 \rhs \nonterm{type-declarator-list} \lstinline$,$ \nonterm{type-declarator} 3017 3053 \lhs{type-declarator} 3018 \rhs \nonterm{identifier} \nonterm{assertion-list}\opt ©=©\nonterm{type-name}3054 \rhs \nonterm{identifier} \nonterm{assertion-list}\opt \lstinline$=$ \nonterm{type-name} 3019 3055 \rhs \nonterm{identifier} \nonterm{assertion-list}\opt 3020 3056 \end{syntax} … … 3027 3063 3028 3064 An identifier declared by a \nonterm{type-parameter} has \Index{no linkage}. 3029 Identifiers declared with type-class ©type©\use{type} are \Index{object type}s; 3030 those declared with type-class ©dtype©\use{dtype} are \Index{incomplete type}s; 3031 and those declared with type-class ©ftype©\use{ftype} are \Index{function type}s. 3065 Identifiers declared with type-class \lstinline$type$\use{type} are \Index{object type}s; 3066 those declared with type-class 3067 \lstinline$dtype$\use{dtype} are \Index{incomplete type}s; 3068 and those declared with type-class 3069 \lstinline$ftype$\use{ftype} are \Index{function type}s. 3032 3070 The identifier has \Index{block scope} that terminates at the end of the \nonterm{spec-declaration-list} or polymorphic function that contains the \nonterm{type-parameter}. 3033 3071 … … 3037 3075 Within the scope of the declaration, \Index{implicit conversion}s can be performed between the defined type and the implementation type, and between pointers to the defined type and pointers to the implementation type. 3038 3076 3039 A type declaration without an \Index{initializer} and without a \Index{storage-class specifier} or with storage-class specifier ©static©\use{static} defines an \Index{incomplete type}. 3040 If a \Index{translation unit} or \Index{block} contains one or more such declarations for an identifier, it must contain exactly one definition of the identifier ( but not in an enclosed block, which would define a new type known only within that block). 3077 A type declaration without an \Index{initializer} and without a \Index{storage-class specifier} or with storage-class specifier \lstinline$static$\use{static} defines an \Index{incomplete type}. 3078 If a 3079 \Index{translation unit} or \Index{block} contains one or more such declarations for an identifier, it must contain exactly one definition of the identifier ( but not in an enclosed block, which would define a new type known only within that block). 3041 3080 \begin{rationale} 3042 3081 Incomplete type declarations allow compact mutually-recursive types. … … 3055 3094 \end{rationale} 3056 3095 3057 A type declaration without an initializer and with \Index{storage-class specifier} ©extern©\use{extern} is an \define{opaque type declaration}. 3058 Opaque types are \Index{object type}s. 3096 A type declaration without an initializer and with \Index{storage-class specifier} 3097 \lstinline$extern$\use{extern} is an \define{opaque type declaration}. 3098 Opaque types are 3099 \Index{object type}s. 3059 3100 An opaque type is not a \nonterm{constant-expression}; 3060 neither is a structure or union that has a member whose type is not a \nonterm{constant-expression}. 3061 Every other\Index{object type} is a \nonterm{constant-expression}.3101 neither is a structure or union that has a member whose type is not a \nonterm{constant-expression}. Every other 3102 \Index{object type} is a \nonterm{constant-expression}. 3062 3103 Objects with static storage duration shall be declared with a type that is a \nonterm{constant-expression}. 3063 3104 \begin{rationale} … … 3069 3110 \end{rationale} 3070 3111 3071 An \Index{incomplete type} which is not a qualified version\index{qualified type} of a type is a value of \Index{type-class} ©dtype©. 3072 An object type\index{object types} which is not a qualified version of a type is a value of type-classes ©type© and ©dtype©. 3073 A \Index{function type} is a value of type-class ©ftype©. 3112 An \Index{incomplete type} which is not a qualified version\index{qualified type} of a type is a value of \Index{type-class} \lstinline$dtype$. 3113 An object type\index{object types} which is not a qualified version of a type is a value of type-classes \lstinline$type$ and \lstinline$dtype$. 3114 A 3115 \Index{function type} is a value of type-class \lstinline$ftype$. 3074 3116 \begin{rationale} 3075 3117 Syntactically, a type value is a \nonterm{type-name}, which is a declaration for an object which omits the identifier being declared. … … 3080 3122 3081 3123 Type qualifiers are a weak point of C's type system. 3082 Consider the standard library function ©strchr()© which, given a string and a character, returns a pointer to the first occurrence of the character in the string. 3083 \begin{lstlisting} 3084 char *strchr( const char *s, int c ) {§\impl{strchr}§ 3124 Consider the standard library function 3125 \lstinline$strchr()$ which, given a string and a character, returns a pointer to the first occurrence of the character in the string. 3126 \begin{lstlisting} 3127 char *strchr( const char *s, int c ) {@\impl{strchr}@ 3085 3128 char real_c = c; // done because c was declared as int. 3086 3129 for ( ; *s != real_c; s++ ) … … 3089 3132 } 3090 3133 \end{lstlisting} 3091 The parameter ©s© must be ©const char *©, because ©strchr()© might be used to search a constant string, but the return type must be ©char *©, because the result might be used to modify a non-constant string. 3092 Hence the body must perform a cast, and ( even worse) ©strchr()© provides a type-safe way to attempt to modify constant strings. 3093 What is needed is some way to say that ©s©'s type might contain qualifiers, and the result type has exactly the same qualifiers. 3134 The parameter \lstinline$s$ must be \lstinline$const char *$, because \lstinline$strchr()$ might be used to search a constant string, but the return type must be \lstinline$char *$, because the result might be used to modify a non-constant string. 3135 Hence the body must perform a cast, and ( even worse) 3136 \lstinline$strchr()$ provides a type-safe way to attempt to modify constant strings. 3137 What is needed is some way to say that \lstinline$s$'s type might contain qualifiers, and the result type has exactly the same qualifiers. 3094 3138 Polymorphic functions do not provide a fix for this deficiency\index{deficiencies!pointers to qualified types}, because type qualifiers are not part of type values. 3095 Instead, overloading can be used to define ©strchr()©for each combination of qualifiers.3139 Instead, overloading can be used to define \lstinline$strchr()$ for each combination of qualifiers. 3096 3140 \end{rationale} 3097 3141 … … 3117 3161 }; 3118 3162 \end{lstlisting} 3119 Without this restriction, \CFA might require ``module initialization'' code ( since ©Rational© has external linkage, it must be created before any other translation unit instantiates it), and would force an ordering on the initialization of the translation unit that defines ©Huge© and the translation that declares ©Rational©. 3163 Without this restriction, \CFA might require ``module initialization'' code ( since 3164 \lstinline$Rational$ has external linkage, it must be created before any other translation unit instantiates it), and would force an ordering on the initialization of the translation unit that defines \lstinline$Huge$ and the translation that declares \lstinline$Rational$. 3120 3165 3121 3166 A benefit of the restriction is that it prevents the declaration in separate translation units of types that contain each other, which would be hard to prevent otherwise. … … 3123 3168 // File a.c: 3124 3169 extern type t1; 3125 type t2 = struct { t1 f1; ... } // illegal3170 type t2 = struct { t1 f1; ... } // illegal 3126 3171 // File b.c: 3127 3172 extern type t2; 3128 type t1 = struct { t2 f2; ... } // illegal3173 type t1 = struct { t2 f2; ... } // illegal 3129 3174 \end{lstlisting} 3130 3175 \end{rationale} … … 3134 3179 \nonterm{struct-declaration}, type declarations can not be structure members. 3135 3180 The form of 3136 \nonterm{type-declaration} forbids arrays of, pointers to, and functions returning ©type©.3181 \nonterm{type-declaration} forbids arrays of, pointers to, and functions returning \lstinline$type$. 3137 3182 Hence the syntax of \nonterm{type-specifier} does not have to be extended to allow type-valued expressions. 3138 3183 It also side-steps the problem of type-valued expressions producing different values in different declarations. … … 3149 3194 #include <stdlib.h> 3150 3195 T * new( otype T ) { return ( T * )malloc( sizeof( T) ); }; 3151 ...int * ip = new( int );3152 \end{lstlisting} 3153 This looks sensible, but \CFA's declaration-before-use rules mean that `` ©T©'' in the function body refers to the parameter, but the ``©T©'' in the return type refers to the meaning of ©T© in the scope that contains ©new©;3196 @\ldots@ int * ip = new( int ); 3197 \end{lstlisting} 3198 This looks sensible, but \CFA's declaration-before-use rules mean that ``\lstinline$T$'' in the function body refers to the parameter, but the ``\lstinline$T$'' in the return type refers to the meaning of \lstinline$T$ in the scope that contains \lstinline$new$; 3154 3199 it could be undefined, or a type name, or a function or variable name. 3155 3200 Nothing good can result from such a situation. … … 3168 3213 f2( v2 ); 3169 3214 \end{lstlisting} 3170 ©V1© is passed by value, so ©f1()©'s assignment to ©a[0]© does not modify v1. ©V2© is converted to a pointer, so ©f2()© modifies ©v2[0]©.3215 \lstinline$V1$ is passed by value, so \lstinline$f1()$'s assignment to \lstinline$a[0]$ does not modify v1. \lstinline$V2$ is converted to a pointer, so \lstinline$f2()$ modifies \lstinline$v2[0]$. 3171 3216 3172 3217 A translation unit containing the declarations 3173 3218 \begin{lstlisting} 3174 extern type Complex; §\use{Complex}§// opaque type declaration3175 extern float abs( Complex ); §\use{abs}§3176 \end{lstlisting} can contain declarations of complex numbers, which can be passed to ©abs©.3177 Some other translation unit must implement ©Complex© and ©abs©.3219 extern type Complex;@\use{Complex}@ // opaque type declaration 3220 extern float abs( Complex );@\use{abs}@ 3221 \end{lstlisting} can contain declarations of complex numbers, which can be passed to \lstinline$abs$. 3222 Some other translation unit must implement \lstinline$Complex$ and \lstinline$abs$. 3178 3223 That unit might contain the declarations 3179 3224 \begin{lstlisting} 3180 otype Complex = struct { float re, im; }; §\impl{Complex}§3181 Complex cplx_i = { 0.0, 1.0 }; §\impl{cplx_i}§3182 float abs( Complex c ) { §\impl{abs( Complex )}§3225 otype Complex = struct { float re, im; };@\impl{Complex}@ 3226 Complex cplx_i = { 0.0, 1.0 };@\impl{cplx_i}@ 3227 float abs( Complex c ) {@\impl{abs( Complex )}@ 3183 3228 return sqrt( c.re * c.re + c.im * c.im ); 3184 3229 } 3185 3230 \end{lstlisting} 3186 Note that ©c© is implicitly converted to a ©struct©so that its components can be retrieved.3187 3188 \begin{lstlisting} 3189 otype Time_of_day = int; §\impl{Time_of_day}§// seconds since midnight.3190 Time_of_day ?+?( Time_of_day t1, int seconds ) { §\impl{?+?}§3231 Note that \lstinline$c$ is implicitly converted to a \lstinline$struct$ so that its components can be retrieved. 3232 3233 \begin{lstlisting} 3234 otype Time_of_day = int;@\impl{Time_of_day}@ // seconds since midnight. 3235 Time_of_day ?+?( Time_of_day t1, int seconds ) {@\impl{?+?}@ 3191 3236 return (( int)t1 + seconds ) % 86400; 3192 3237 } 3193 3238 \end{lstlisting} 3194 ©t1©must be cast to its implementation type to prevent infinite recursion.3239 \lstinline$t1$ must be cast to its implementation type to prevent infinite recursion. 3195 3240 3196 3241 \begin{rationale} 3197 3242 Within the scope of a type definition, an instance of the type can be viewed as having that type or as having the implementation type. 3198 In the ©Time_of_day©example, the difference is important.3243 In the \lstinline$Time_of_day$ example, the difference is important. 3199 3244 Different languages have treated the distinction between the abstraction and the implementation in different ways. 3200 3245 \begin{itemize} 3201 3246 \item 3202 3247 Inside a Clu cluster \cite{CLU}, the declaration of an instance states which view applies. 3203 Two primitives called ©up© and ©down©can be used to convert between the views.3248 Two primitives called \lstinline$up$ and \lstinline$down$ can be used to convert between the views. 3204 3249 \item 3205 3250 The Simula class \cite{SIMULA87} is essentially a record type. 3206 3251 Since the only operations on a record are member selection and assignment, which can not be overloaded, there is never any ambiguity as to whether the abstraction or the implementation view is being used. 3207 3252 In {\CC} 3208 \cite{C++}, operations on class instances include assignment and `` ©&©'', which can be overloaded.3253 \cite{C++}, operations on class instances include assignment and ``\lstinline$&$'', which can be overloaded. 3209 3254 A ``scope resolution'' operator can be used inside the class to specify whether the abstract or implementation version of the operation should be used. 3210 3255 \item … … 3219 3264 In this case, explicit conversions between the derived type and the old type can be used. 3220 3265 \end{itemize} 3221 \CFA's rules are like Clu's, except that implicit conversions and conversion costs allow it to do away with most uses of ©up© and ©down©.3266 \CFA's rules are like Clu's, except that implicit conversions and conversion costs allow it to do away with most uses of \lstinline$up$ and \lstinline$down$. 3222 3267 \end{rationale} 3223 3268 … … 3225 3270 \subsubsection{Default functions and objects} 3226 3271 3227 A declaration\index{type declaration} of a type identifier ©T© with type-class ©type© implicitly declares a \define{default assignment} function ©T ?=?( T *, T )©\use{?=?}, with the same \Index{scope} and \Index{linkage} as the identifier ©T©. 3272 A declaration\index{type declaration} of a type identifier \lstinline$T$ with type-class 3273 \lstinline$type$ implicitly declares a \define{default assignment} function 3274 \lstinline$T ?=?( T *, T )$\use{?=?}, with the same \Index{scope} and \Index{linkage} as the identifier \lstinline$T$. 3228 3275 \begin{rationale} 3229 3276 Assignment is central to C's imperative programming style, and every existing C object type has assignment defined for it ( except for array types, which are treated as pointer types for purposes of assignment). 3230 3277 Without this rule, nearly every inferred type parameter would need an accompanying assignment assertion parameter. 3231 If a type parameter should not have an assignment operation, ©dtype© should be used. 3278 If a type parameter should not have an assignment operation, 3279 \lstinline$dtype$ should be used. 3232 3280 If a type should not have assignment defined, the user can define an assignment function that causes a run-time error, or provide an external declaration but no definition and thus cause a link-time error. 3233 3281 \end{rationale} 3234 3282 3235 A definition\index{type definition} of a type identifier ©T© with \Index{implementation type} ©I© and type-class ©type© implicitly defines a default assignment function. 3236 A definition\index{type definition} of a type identifier ©T© with implementation type ©I© and an assertion list implicitly defines \define{default function}s and \define{default object}s as declared by the assertion declarations. 3237 The default objects and functions have the same \Index{scope} and \Index{linkage} as the identifier ©T©. 3283 A definition\index{type definition} of a type identifier \lstinline$T$ with \Index{implementation type} \lstinline$I$ and type-class \lstinline$type$ implicitly defines a default assignment function. 3284 A definition\index{type definition} of a type identifier \lstinline$T$ with implementation type \lstinline$I$ and an assertion list implicitly defines \define{default function}s and 3285 \define{default object}s as declared by the assertion declarations. 3286 The default objects and functions have the same \Index{scope} and \Index{linkage} as the identifier \lstinline$T$. 3238 3287 Their values are determined as follows: 3239 3288 \begin{itemize} 3240 3289 \item 3241 If at the definition of ©T© there is visible a declaration of an object with the same name as the default object, and if the type of that object with all occurrence of ©I© replaced by ©T©is compatible with the type of the default object, then the default object is initialized with that object.3242 Otherwise the scope of the declaration of ©T©must contain a definition of the default object.3290 If at the definition of \lstinline$T$ there is visible a declaration of an object with the same name as the default object, and if the type of that object with all occurrence of \lstinline$I$ replaced by \lstinline$T$ is compatible with the type of the default object, then the default object is initialized with that object. 3291 Otherwise the scope of the declaration of \lstinline$T$ must contain a definition of the default object. 3243 3292 3244 3293 \item 3245 If at the definition of ©T© there is visible a declaration of a function with the same name as the default function, and if the type of that function with all occurrence of ©I© replaced by ©T©is compatible with the type of the default function, then the default function calls that function after converting its arguments and returns the converted result.3246 3247 Otherwise, if ©I© contains exactly one anonymous member\index{anonymous member} such that at the definition of ©T© there is visible a declaration of a function with the same name as the default function, and the type of that function with all occurrences of the anonymous member's type in its parameter list replaced by ©T©is compatible with the type of the default function, then the default function calls that function after converting its arguments and returns the result.3248 3249 Otherwise the scope of the declaration of ©T©must contain a definition of the default function.3294 If at the definition of \lstinline$T$ there is visible a declaration of a function with the same name as the default function, and if the type of that function with all occurrence of \lstinline$I$ replaced by \lstinline$T$ is compatible with the type of the default function, then the default function calls that function after converting its arguments and returns the converted result. 3295 3296 Otherwise, if \lstinline$I$ contains exactly one anonymous member\index{anonymous member} such that at the definition of \lstinline$T$ there is visible a declaration of a function with the same name as the default function, and the type of that function with all occurrences of the anonymous member's type in its parameter list replaced by \lstinline$T$ is compatible with the type of the default function, then the default function calls that function after converting its arguments and returns the result. 3297 3298 Otherwise the scope of the declaration of \lstinline$T$ must contain a definition of the default function. 3250 3299 \end{itemize} 3251 3300 \begin{rationale} … … 3253 3302 \end{rationale} 3254 3303 3255 A function or object with the same type and name as a default function or object that is declared within the scope of the definition of ©T©replaces the default function or object.3304 A function or object with the same type and name as a default function or object that is declared within the scope of the definition of \lstinline$T$ replaces the default function or object. 3256 3305 3257 3306 \examples … … 3263 3312 Pair b = { 1, 1 }; 3264 3313 \end{lstlisting} 3265 The definition of ©Pair© implicitly defines two objects ©a© and ©b©. 3266 ©Pair a© inherits its value from the ©struct impl a©. 3267 The definition of ©Pair b© is compulsory because there is no ©struct impl b© to construct a value from. 3314 The definition of \lstinline$Pair$ implicitly defines two objects \lstinline$a$ and \lstinline$b$. 3315 \lstinline$Pair a$ inherits its value from the \lstinline$struct impl a$. 3316 The definition of 3317 \lstinline$Pair b$ is compulsory because there is no \lstinline$struct impl b$ to construct a value from. 3268 3318 \begin{lstlisting} 3269 3319 trait ss( otype T ) { … … 3271 3321 void munge( T * ); 3272 3322 } 3273 otype Whatsit | ss( Whatsit ); §\use{Whatsit}§3274 otype Doodad | ss( Doodad ) = struct doodad { §\use{Doodad}§3323 otype Whatsit | ss( Whatsit );@\use{Whatsit}@ 3324 otype Doodad | ss( Doodad ) = struct doodad {@\use{Doodad}@ 3275 3325 Whatsit; // anonymous member 3276 3326 int extra; … … 3278 3328 Doodad clone( Doodad ) { ... } 3279 3329 \end{lstlisting} 3280 The definition of ©Doodad©implicitly defines three functions:3330 The definition of \lstinline$Doodad$ implicitly defines three functions: 3281 3331 \begin{lstlisting} 3282 3332 Doodad ?=?( Doodad *, Doodad ); … … 3284 3334 void munge( Doodad * ); 3285 3335 \end{lstlisting} 3286 The assignment function inherits ©struct doodad©'s assignment function because the types match when ©struct doodad© is replaced by ©Doodad© throughout. 3287 ©munge()© inherits ©Whatsit©'s ©munge()© because the types match when ©Whatsit© is replaced by ©Doodad© in the parameter list. ©clone()© does \emph{not} inherit ©Whatsit©'s ©clone()©: replacement in the parameter list yields ``©Whatsit clone( Doodad )©'', which is not compatible with ©Doodad©'s ©clone()©'s type. 3288 Hence the definition of ``©Doodad clone( Doodad )©'' is necessary. 3336 The assignment function inherits \lstinline$struct doodad$'s assignment function because the types match when \lstinline$struct doodad$ is replaced by \lstinline$Doodad$ throughout. 3337 \lstinline$munge()$ inherits \lstinline$Whatsit$'s \lstinline$munge()$ because the types match when 3338 \lstinline$Whatsit$ is replaced by \lstinline$Doodad$ in the parameter list. \lstinline$clone()$ does \emph{not} inherit \lstinline$Whatsit$'s \lstinline$clone()$: replacement in the parameter list yields ``\lstinline$Whatsit clone( Doodad )$'', which is not compatible with 3339 \lstinline$Doodad$'s \lstinline$clone()$'s type. 3340 Hence the definition of 3341 ``\lstinline$Doodad clone( Doodad )$'' is necessary. 3289 3342 3290 3343 Default functions and objects are subject to the normal scope rules. 3291 3344 \begin{lstlisting} 3292 otype T = ...;3293 T a_T = ...; // Default assignment used.3345 otype T = @\ldots@; 3346 T a_T = @\ldots@; // Default assignment used. 3294 3347 T ?=?( T *, T ); 3295 T a_T = ...; // Programmer-defined assignment called.3348 T a_T = @\ldots@; // Programmer-defined assignment called. 3296 3349 \end{lstlisting} 3297 3350 \begin{rationale} … … 3326 3379 \begin{syntax} 3327 3380 \oldlhs{labeled-statement} 3328 \rhs ©case©\nonterm{case-value-list} : \nonterm{statement}3381 \rhs \lstinline$case$ \nonterm{case-value-list} : \nonterm{statement} 3329 3382 \lhs{case-value-list} 3330 3383 \rhs \nonterm{case-value} 3331 \rhs \nonterm{case-value-list} ©,©\nonterm{case-value}3384 \rhs \nonterm{case-value-list} \lstinline$,$ \nonterm{case-value} 3332 3385 \lhs{case-value} 3333 3386 \rhs \nonterm{constant-expression} 3334 3387 \rhs \nonterm{subrange} 3335 3388 \lhs{subrange} 3336 \rhs \nonterm{constant-expression} ©~©\nonterm{constant-expression}3389 \rhs \nonterm{constant-expression} \lstinline$~$ \nonterm{constant-expression} 3337 3390 \end{syntax} 3338 3391 … … 3347 3400 case 1~4, 9~14, 27~32: 3348 3401 \end{lstlisting} 3349 The ©case© and ©default© clauses are restricted within the ©switch© and ©choose©statements, precluding Duff's device.3402 The \lstinline$case$ and \lstinline$default$ clauses are restricted within the \lstinline$switch$ and \lstinline$choose$ statements, precluding Duff's device. 3350 3403 3351 3404 3352 3405 \subsection{Expression and null statements} 3353 3406 3354 The expression in an expression statement is treated as being cast to ©void©.3407 The expression in an expression statement is treated as being cast to \lstinline$void$. 3355 3408 3356 3409 … … 3359 3412 \begin{syntax} 3360 3413 \oldlhs{selection-statement} 3361 \rhs ©choose© ©(© \nonterm{expression} ©)©\nonterm{statement}3414 \rhs \lstinline$choose$ \lstinline$($ \nonterm{expression} \lstinline$)$ \nonterm{statement} 3362 3415 \end{syntax} 3363 3416 3364 The controlling expression ©E© in the ©switch© and ©choose©statement:3417 The controlling expression \lstinline$E$ in the \lstinline$switch$ and \lstinline$choose$ statement: 3365 3418 \begin{lstlisting} 3366 3419 switch ( E ) ... … … 3368 3421 \end{lstlisting} may have more than one interpretation, but it shall have only one interpretation with an integral type. 3369 3422 An \Index{integer promotion} is performed on the expression if necessary. 3370 The constant expressions in ©case©statements with the switch are converted to the promoted type.3423 The constant expressions in \lstinline$case$ statements with the switch are converted to the promoted type. 3371 3424 3372 3425 3373 3426 \setcounter{subsubsection}{3} 3374 \subsubsection [The choose statement]{The \lstinline@choose@statement}3375 3376 The ©choose© statement is the same as the ©switch© statement except control transfers to the end of the ©choose© statement at a ©case© or ©default©labeled statement.3377 The ©fallthru© statement is used to fall through to the next ©case© or ©default©labeled statement.3427 \subsubsection{The \lstinline$choose$ statement} 3428 3429 The \lstinline$choose$ statement is the same as the \lstinline$switch$ statement except control transfers to the end of the \lstinline$choose$ statement at a \lstinline$case$ or \lstinline$default$ labeled statement. 3430 The \lstinline$fallthru$ statement is used to fall through to the next \lstinline$case$ or \lstinline$default$ labeled statement. 3378 3431 The following have identical meaning: 3379 3432 \begin{flushleft} … … 3400 3453 \end{tabular} 3401 3454 \end{flushleft} 3402 The ©choose© statement addresses the problem of accidental fall-through associated with the ©switch©statement.3455 The \lstinline$choose$ statement addresses the problem of accidental fall-through associated with the \lstinline$switch$ statement. 3403 3456 3404 3457 3405 3458 \subsection{Iteration statements} 3406 3459 3407 The controlling expression ©E©in the loops3460 The controlling expression \lstinline$E$ in the loops 3408 3461 \begin{lstlisting} 3409 3462 if ( E ) ... 3410 3463 while ( E ) ... 3411 3464 do ... while ( E ); 3412 \end{lstlisting} 3413 is treated as ``©( int )((E)!=0)©''. 3465 \end{lstlisting} is treated as ``\lstinline$( int )((E)!=0)$''. 3414 3466 3415 3467 The statement 3416 3468 \begin{lstlisting} 3417 for ( a; b; c ) ...3469 for ( a; b; c ) @\ldots@ 3418 3470 \end{lstlisting} is treated as 3419 3471 \begin{lstlisting} … … 3426 3478 \begin{syntax} 3427 3479 \oldlhs{jump-statement} 3428 \rhs ©continue©\nonterm{identifier}\opt3429 \rhs ©break©\nonterm{identifier}\opt3480 \rhs \lstinline$continue$ \nonterm{identifier}\opt 3481 \rhs \lstinline$break$ \nonterm{identifier}\opt 3430 3482 \rhs \ldots 3431 \rhs ©throw©\nonterm{assignment-expression}\opt3432 \rhs ©throwResume©\nonterm{assignment-expression}\opt \nonterm{at-expression}\opt3433 \lhs{at-expression} ©_At©\nonterm{assignment-expression}3483 \rhs \lstinline$throw$ \nonterm{assignment-expression}\opt 3484 \rhs \lstinline$throwResume$ \nonterm{assignment-expression}\opt \nonterm{at-expression}\opt 3485 \lhs{at-expression} \lstinline$_At$ \nonterm{assignment-expression} 3434 3486 \end{syntax} 3435 3487 3436 Labeled ©continue© and ©break© allow useful but restricted control-flow that reduces the need for the ©goto©statement for exiting multiple nested control-structures.3488 Labeled \lstinline$continue$ and \lstinline$break$ allow useful but restricted control-flow that reduces the need for the \lstinline$goto$ statement for exiting multiple nested control-structures. 3437 3489 \begin{lstlisting} 3438 3490 L1: { // compound … … 3461 3513 3462 3514 \setcounter{subsubsection}{1} 3463 \subsubsection [The continue statement]{The \lstinline@continue@statement}3464 3465 The identifier in a ©continue©statement shall name a label located on an enclosing iteration statement.3466 3467 3468 \subsubsection [The break statement]{The \lstinline@break@statement}3469 3470 The identifier in a ©break©statement shall name a label located on an enclosing compound, selection or iteration statement.3471 3472 3473 \subsubsection [The return statement]{The \lstinline@return@statement}3474 3475 An expression in a ©return©statement is treated as being cast to the result type of the function.3476 3477 3478 \subsubsection [The throw statement]{The \lstinline@throw@statement}3515 \subsubsection{The \lstinline$continue$ statement} 3516 3517 The identifier in a \lstinline$continue$ statement shall name a label located on an enclosing iteration statement. 3518 3519 3520 \subsubsection{The \lstinline$break$ statement} 3521 3522 The identifier in a \lstinline$break$ statement shall name a label located on an enclosing compound, selection or iteration statement. 3523 3524 3525 \subsubsection{The \lstinline$return$ statement} 3526 3527 An expression in a \lstinline$return$ statement is treated as being cast to the result type of the function. 3528 3529 3530 \subsubsection{The \lstinline$throw$ statement} 3479 3531 3480 3532 When an exception is raised, \Index{propagation} directs control from a raise in the source execution to a handler in the faulting execution. 3481 3533 3482 3534 3483 \subsubsection [The throwResume statement]{The \lstinline@throwResume@statement}3535 \subsubsection{The \lstinline$throwResume$ statement} 3484 3536 3485 3537 … … 3488 3540 \begin{syntax} 3489 3541 \lhs{exception-statement} 3490 \rhs ©try©\nonterm{compound-statement} \nonterm{handler-list}3491 \rhs ©try©\nonterm{compound-statement} \nonterm{finally-clause}3492 \rhs ©try©\nonterm{compound-statement} \nonterm{handler-list} \nonterm{finally-clause}3542 \rhs \lstinline$try$ \nonterm{compound-statement} \nonterm{handler-list} 3543 \rhs \lstinline$try$ \nonterm{compound-statement} \nonterm{finally-clause} 3544 \rhs \lstinline$try$ \nonterm{compound-statement} \nonterm{handler-list} \nonterm{finally-clause} 3493 3545 \lhs{handler-list} 3494 3546 \rhs \nonterm{handler-clause} 3495 \rhs ©catch© ©(© \ldots ©)©\nonterm{compound-statement}3496 \rhs \nonterm{handler-clause} ©catch© ©(© \ldots ©)©\nonterm{compound-statement}3497 \rhs ©catchResume© ©(© \ldots ©)©\nonterm{compound-statement}3498 \rhs \nonterm{handler-clause} ©catchResume© ©(© \ldots ©)©\nonterm{compound-statement}3547 \rhs \lstinline$catch$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement} 3548 \rhs \nonterm{handler-clause} \lstinline$catch$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement} 3549 \rhs \lstinline$catchResume$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement} 3550 \rhs \nonterm{handler-clause} \lstinline$catchResume$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement} 3499 3551 \lhs{handler-clause} 3500 \rhs ©catch© ©(© \nonterm{exception-declaration} ©)©\nonterm{compound-statement}3501 \rhs \nonterm{handler-clause} ©catch© ©(© \nonterm{exception-declaration} ©)©\nonterm{compound-statement}3502 \rhs ©catchResume© ©(© \nonterm{exception-declaration} ©)©\nonterm{compound-statement}3503 \rhs \nonterm{handler-clause} ©catchResume© ©(© \nonterm{exception-declaration} ©)©\nonterm{compound-statement}3552 \rhs \lstinline$catch$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement} 3553 \rhs \nonterm{handler-clause} \lstinline$catch$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement} 3554 \rhs \lstinline$catchResume$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement} 3555 \rhs \nonterm{handler-clause} \lstinline$catchResume$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement} 3504 3556 \lhs{finally-clause} 3505 \rhs ©finally©\nonterm{compound-statement}3557 \rhs \lstinline$finally$ \nonterm{compound-statement} 3506 3558 \lhs{exception-declaration} 3507 3559 \rhs \nonterm{type-specifier} … … 3511 3563 \rhs \nonterm{new-abstract-declarator-tuple} 3512 3564 \lhs{asynchronous-statement} 3513 \rhs ©enable©\nonterm{identifier-list} \nonterm{compound-statement}3514 \rhs ©disable©\nonterm{identifier-list} \nonterm{compound-statement}3565 \rhs \lstinline$enable$ \nonterm{identifier-list} \nonterm{compound-statement} 3566 \rhs \lstinline$disable$ \nonterm{identifier-list} \nonterm{compound-statement} 3515 3567 \end{syntax} 3516 3568 … … 3518 3570 3519 3571 3520 \subsubsection [The try statement]{The \lstinline@try@statement}3521 3522 The ©try©statement is a block with associated handlers, called a \Index{guarded block};3572 \subsubsection{The \lstinline$try$ statement} 3573 3574 The \lstinline$try$ statement is a block with associated handlers, called a \Index{guarded block}; 3523 3575 all other blocks are \Index{unguarded block}s. 3524 A ©goto©, ©break©, ©return©, or ©continue©statement can be used to transfer control out of a try block or handler, but not into one.3525 3526 3527 \subsubsection [The enable/disable statements]{The \lstinline@enable@/\lstinline@disable@statements}3528 3529 The ©enable©/©disable©statements toggle delivery of \Index{asynchronous exception}s.3576 A \lstinline$goto$, \lstinline$break$, \lstinline$return$, or \lstinline$continue$ statement can be used to transfer control out of a try block or handler, but not into one. 3577 3578 3579 \subsubsection{The \lstinline$enable$/\lstinline$disable$ statements} 3580 3581 The \lstinline$enable$/\lstinline$disable$ statements toggle delivery of \Index{asynchronous exception}s. 3530 3582 3531 3583 … … 3537 3589 \subsection{Predefined macro names} 3538 3590 3539 The implementation shall define the macro names ©__LINE__©, ©__FILE__©, ©__DATE__©, and ©__TIME__©, as in the {\c11} standard. 3540 It shall not define the macro name ©__STDC__©. 3541 3542 In addition, the implementation shall define the macro name ©__CFORALL__© to be the decimal constant 1. 3591 The implementation shall define the macro names \lstinline$__LINE__$, \lstinline$__FILE__$, 3592 \lstinline$__DATE__$, and \lstinline$__TIME__$, as in the {\c11} standard. 3593 It shall not define the macro name \lstinline$__STDC__$. 3594 3595 In addition, the implementation shall define the macro name \lstinline$__CFORALL__$ to be the decimal constant 1. 3543 3596 3544 3597 … … 3557 3610 The pointer, integral, and floating-point types are all \define{scalar types}. 3558 3611 All of these types can be logically negated and compared. 3559 The assertion `` ©scalar( Complex )©'' should be read as ``type ©Complex©is scalar''.3560 \begin{lstlisting} 3561 trait scalar( otype T ) { §\impl{scalar}§3612 The assertion ``\lstinline$scalar( Complex )$'' should be read as ``type \lstinline$Complex$ is scalar''. 3613 \begin{lstlisting} 3614 trait scalar( otype T ) {@\impl{scalar}@ 3562 3615 int !?( T ); 3563 3616 int ?<?( T, T ), ?<=?( T, T ), ?==?( T, T ), ?>=?( T, T ), ?>?( T, T ), ?!=?( T, T ); … … 3569 3622 This is equivalent to inheritance of specifications. 3570 3623 \begin{lstlisting} 3571 trait arithmetic( otype T | scalar( T ) ) { §\impl{arithmetic}§§\use{scalar}§3624 trait arithmetic( otype T | scalar( T ) ) {@\impl{arithmetic}@@\use{scalar}@ 3572 3625 T +?( T ), -?( T ); 3573 3626 T ?*?( T, T ), ?/?( T, T ), ?+?( T, T ), ?-?( T, T ); … … 3575 3628 \end{lstlisting} 3576 3629 3577 The various flavors of ©char© and ©int© and the enumerated types make up the \define{integral types}. 3578 \begin{lstlisting} 3579 trait integral( otype T | arithmetic( T ) ) {§\impl{integral}§§\use{arithmetic}§ 3630 The various flavors of \lstinline$char$ and \lstinline$int$ and the enumerated types make up the 3631 \define{integral types}. 3632 \begin{lstlisting} 3633 trait integral( otype T | arithmetic( T ) ) {@\impl{integral}@@\use{arithmetic}@ 3580 3634 T ~?( T ); 3581 3635 T ?&?( T, T ), ?|?( T, T ), ?^?( T, T ); … … 3591 3645 The only operation that can be applied to all modifiable lvalues is simple assignment. 3592 3646 \begin{lstlisting} 3593 trait m_lvalue( otype T ) { §\impl{m_lvalue}§3647 trait m_lvalue( otype T ) {@\impl{m_lvalue}@ 3594 3648 T ?=?( T *, T ); 3595 3649 }; … … 3601 3655 Scalars can also be incremented and decremented. 3602 3656 \begin{lstlisting} 3603 trait m_l_scalar( otype T | scalar( T ) | m_lvalue( T ) ) { §\impl{m_l_scalar}§3604 T ?++( T * ), ?--( T * ); §\use{scalar}§§\use{m_lvalue}§3657 trait m_l_scalar( otype T | scalar( T ) | m_lvalue( T ) ) {@\impl{m_l_scalar}@ 3658 T ?++( T * ), ?--( T * );@\use{scalar}@@\use{m_lvalue}@ 3605 3659 T ++?( T * ), --?( T * ); 3606 3660 }; … … 3608 3662 3609 3663 Modifiable arithmetic lvalues are both modifiable scalar lvalues and arithmetic. 3610 Note that this results in the ``inheritance'' of ©scalar©along both paths.3611 \begin{lstlisting} 3612 trait m_l_arithmetic( otype T | m_l_scalar( T ) | arithmetic( T ) ) { §\impl{m_l_arithmetic}§3613 T ?/=?( T *, T ), ?*=?( T *, T ); §\use{m_l_scalar}§§\use{arithmetic}§3664 Note that this results in the ``inheritance'' of \lstinline$scalar$ along both paths. 3665 \begin{lstlisting} 3666 trait m_l_arithmetic( otype T | m_l_scalar( T ) | arithmetic( T ) ) {@\impl{m_l_arithmetic}@ 3667 T ?/=?( T *, T ), ?*=?( T *, T );@\use{m_l_scalar}@@\use{arithmetic}@ 3614 3668 T ?+=?( T *, T ), ?-=?( T *, T ); 3615 3669 }; 3616 trait m_l_integral( otype T | m_l_arithmetic( T ) | integral( T ) ) { §\impl{m_l_integral}§3617 T ?&=?( T *, T ), ?|=?( T *, T ), ?^=?( T *, T ); §\use{m_l_arithmetic}§3618 T ?%=?( T *, T ), ?<<=?( T *, T ), ?>>=?( T *, T ); §\use{integral}§3670 trait m_l_integral( otype T | m_l_arithmetic( T ) | integral( T ) ) {@\impl{m_l_integral}@ 3671 T ?&=?( T *, T ), ?|=?( T *, T ), ?^=?( T *, T );@\use{m_l_arithmetic}@ 3672 T ?%=?( T *, T ), ?<<=?( T *, T ), ?>>=?( T *, T );@\use{integral}@ 3619 3673 }; 3620 3674 \end{lstlisting} … … 3623 3677 \subsection{Pointer and array types} 3624 3678 3625 Array types can barely be said to exist in {\c11}, since in most cases an array name is treated as a constant pointer to the first element of the array, and the subscript expression ``©a[i]©'' is equivalent to the dereferencing expression ``©(*( a+( i )))©''. 3626 Technically, pointer arithmetic and pointer comparisons other than ``©==©'' and ``©!=©'' are only defined for pointers to array elements, but the type system does not enforce those restrictions. 3679 Array types can barely be said to exist in {\c11}, since in most cases an array name is treated as a constant pointer to the first element of the array, and the subscript expression 3680 ``\lstinline$a[i]$'' is equivalent to the dereferencing expression ``\lstinline$(*( a+( i )))$''. 3681 Technically, pointer arithmetic and pointer comparisons other than ``\lstinline$==$'' and 3682 ``\lstinline$!=$'' are only defined for pointers to array elements, but the type system does not enforce those restrictions. 3627 3683 Consequently, there is no need for a separate ``array type'' specification. 3628 3684 3629 3685 Pointer types are scalar types. 3630 Like other scalar types, they have ``©+©'' and ``©-©'' operators, but the types do not match the types of the operations in ©arithmetic©, so these operators cannot be consolidated in ©scalar©. 3631 \begin{lstlisting} 3632 trait pointer( type P | scalar( P ) ) {§\impl{pointer}§§\use{scalar}§ 3686 Like other scalar types, they have ``\lstinline$+$'' and 3687 ``\lstinline$-$'' operators, but the types do not match the types of the operations in 3688 \lstinline$arithmetic$, so these operators cannot be consolidated in \lstinline$scalar$. 3689 \begin{lstlisting} 3690 trait pointer( type P | scalar( P ) ) {@\impl{pointer}@@\use{scalar}@ 3633 3691 P ?+?( P, long int ), ?+?( long int, P ), ?-?( P, long int ); 3634 3692 ptrdiff_t ?-?( P, P ); 3635 3693 }; 3636 trait m_l_pointer( type P | pointer( P ) | m_l_scalar( P ) ) { §\impl{m_l_pointer}§3694 trait m_l_pointer( type P | pointer( P ) | m_l_scalar( P ) ) {@\impl{m_l_pointer}@ 3637 3695 P ?+=?( P *, long int ), ?-=?( P *, long int ); 3638 3696 P ?=?( P *, void * ); … … 3643 3701 Specifications that define the dereference operator ( or subscript operator ) require two parameters, one for the pointer type and one for the pointed-at ( or element ) type. 3644 3702 Different specifications are needed for each set of \Index{type qualifier}s, because qualifiers are not included in types. 3645 The assertion ``©|ptr_to( Safe_pointer, int )©'' should be read as ``©Safe_pointer© acts like a pointer to ©int©''. 3646 \begin{lstlisting} 3647 trait ptr_to( otype P | pointer( P ), otype T ) {§\impl{ptr_to}§§\use{pointer}§ 3703 The assertion ``\lstinline$|ptr_to( Safe_pointer, int )$'' should be read as 3704 ``\lstinline$Safe_pointer$ acts like a pointer to \lstinline$int$''. 3705 \begin{lstlisting} 3706 trait ptr_to( otype P | pointer( P ), otype T ) {@\impl{ptr_to}@@\use{pointer}@ 3648 3707 lvalue T *?( P ); 3649 3708 lvalue T ?[?]( P, long int ); 3650 3709 }; 3651 trait ptr_to_const( otype P | pointer( P ), otype T ) { §\impl{ptr_to_const}§3710 trait ptr_to_const( otype P | pointer( P ), otype T ) {@\impl{ptr_to_const}@ 3652 3711 const lvalue T *?( P ); 3653 const lvalue T ?[?]( P, long int ); §\use{pointer}§3712 const lvalue T ?[?]( P, long int );@\use{pointer}@ 3654 3713 }; 3655 trait ptr_to_volatile( otype P | pointer( P ), otype T ) } §\impl{ptr_to_volatile}§3714 trait ptr_to_volatile( otype P | pointer( P ), otype T ) }@\impl{ptr_to_volatile}@ 3656 3715 volatile lvalue T *?( P ); 3657 volatile lvalue T ?[?]( P, long int ); §\use{pointer}§3716 volatile lvalue T ?[?]( P, long int );@\use{pointer}@ 3658 3717 }; 3659 trait ptr_to_const_volatile( otype P | pointer( P ), otype T ) } §\impl{ptr_to_const_volatile}§3660 const volatile lvalue T *?( P ); §\use{pointer}§3718 trait ptr_to_const_volatile( otype P | pointer( P ), otype T ) }@\impl{ptr_to_const_volatile}@ 3719 const volatile lvalue T *?( P );@\use{pointer}@ 3661 3720 const volatile lvalue T ?[?]( P, long int ); 3662 3721 }; 3663 3722 \end{lstlisting} 3664 3723 3665 Assignment to pointers is more complicated than is the case with other types, because the target's type can have extra type qualifiers in the pointed-at type: a ``©T *©'' can be assigned to a ``©const T *©'', a ``©volatile T *©'', and a ``©const volatile T *©''. 3666 Again, the pointed-at type is passed in, so that assertions can connect these specifications to the ``©ptr_to©'' specifications. 3667 \begin{lstlisting} 3668 trait m_l_ptr_to( otype P | m_l_pointer( P ),§\use{m_l_pointer}§§\impl{m_l_ptr_to}§ otype T | ptr_to( P, T )§\use{ptr_to}§ { 3724 Assignment to pointers is more complicated than is the case with other types, because the target's type can have extra type qualifiers in the pointed-at type: a ``\lstinline$T *$'' can be assigned to a ``\lstinline$const T *$'', a ``\lstinline$volatile T *$'', and a ``\lstinline$const volatile T *$''. 3725 Again, the pointed-at type is passed in, so that assertions can connect these specifications to the 3726 ``\lstinline$ptr_to$'' specifications. 3727 \begin{lstlisting} 3728 trait m_l_ptr_to( otype P | m_l_pointer( P ),@\use{m_l_pointer}@@\impl{m_l_ptr_to}@ otype T | ptr_to( P, T )@\use{ptr_to}@ { 3669 3729 P ?=?( P *, T * ); 3670 3730 T * ?=?( T **, P ); 3671 3731 }; 3672 trait m_l_ptr_to_const( otype P | m_l_pointer( P ), §\use{m_l_pointer}§§\impl{m_l_ptr_to_const}§ otype T | ptr_to_const( P, T )§\use{ptr_to_const}§) {3732 trait m_l_ptr_to_const( otype P | m_l_pointer( P ),@\use{m_l_pointer}@@\impl{m_l_ptr_to_const}@ otype T | ptr_to_const( P, T )@\use{ptr_to_const}@) { 3673 3733 P ?=?( P *, const T * ); 3674 3734 const T * ?=?( const T **, P ); 3675 3735 }; 3676 trait m_l_ptr_to_volatile( otype P | m_l_pointer( P ), §\use{m_l_pointer}§§\impl{m_l_ptr_to_volatile}§ otype T | ptr_to_volatile( P, T )) {§\use{ptr_to_volatile}§3736 trait m_l_ptr_to_volatile( otype P | m_l_pointer( P ),@\use{m_l_pointer}@@\impl{m_l_ptr_to_volatile}@ otype T | ptr_to_volatile( P, T )) {@\use{ptr_to_volatile}@ 3677 3737 P ?=?( P *, volatile T * ); 3678 3738 volatile T * ?=?( volatile T **, P ); 3679 3739 }; 3680 trait m_l_ptr_to_const_volatile( otype P | ptr_to_const_volatile( P ), §\use{ptr_to_const_volatile}§§\impl{m_l_ptr_to_const_volatile}§3681 otype T | m_l_ptr_to_volatile( P, T ) | m_l_ptr_to_const( P )) { §\use{m_l_ptr_to_const}§§\use{m_l_ptr_to_volatile}§3740 trait m_l_ptr_to_const_volatile( otype P | ptr_to_const_volatile( P ),@\use{ptr_to_const_volatile}@@\impl{m_l_ptr_to_const_volatile}@ 3741 otype T | m_l_ptr_to_volatile( P, T ) | m_l_ptr_to_const( P )) {@\use{m_l_ptr_to_const}@@\use{m_l_ptr_to_volatile}@ 3682 3742 P ?=?( P *, const volatile T * ); 3683 3743 const volatile T * ?=?( const volatile T **, P ); … … 3688 3748 An alternative specification can make use of the fact that qualification of the pointed-at type is part of a pointer type to capture that regularity. 3689 3749 \begin{lstlisting} 3690 trait m_l_ptr_like( type MyP | m_l_pointer( MyP ), §\use{m_l_pointer}§§\impl{m_l_ptr_like}§type CP | m_l_pointer( CP ) ) {3750 trait m_l_ptr_like( type MyP | m_l_pointer( MyP ),@\use{m_l_pointer}@@\impl{m_l_ptr_like}@ type CP | m_l_pointer( CP ) ) { 3691 3751 MyP ?=?( MyP *, CP ); 3692 3752 CP ?=?( CP *, MyP ); 3693 3753 }; 3694 3754 \end{lstlisting} 3695 The assertion ``©| m_l_ptr_like( Safe_ptr, const int * )©'' should be read as ``©Safe_ptr© is a pointer type like ©const int *©''. 3696 This specification has two defects, compared to the original four: there is no automatic assertion that dereferencing a ©MyP© produces an lvalue of the type that ©CP© points at, and the ``©|m_l_pointer( CP )©'' assertion provides only a weak assurance that the argument passed to ©CP© really is a pointer type. 3755 The assertion ``\lstinline$| m_l_ptr_like( Safe_ptr, const int * )$'' should be read as 3756 ``\lstinline$Safe_ptr$ is a pointer type like \lstinline$const int *$''. 3757 This specification has two defects, compared to the original four: there is no automatic assertion that dereferencing a 3758 \lstinline$MyP$ produces an lvalue of the type that \lstinline$CP$ points at, and the 3759 ``\lstinline$|m_l_pointer( CP )$'' assertion provides only a weak assurance that the argument passed to \lstinline$CP$ really is a pointer type. 3697 3760 3698 3761 … … 3700 3763 3701 3764 Different operators often have related meanings; 3702 for instance, in C, ``©+©'', ``©+=©'', and the two versions of ``©++©'' perform variations of addition. 3765 for instance, in C, ``\lstinline$+$'', 3766 ``\lstinline$+=$'', and the two versions of ``\lstinline$++$'' perform variations of addition. 3703 3767 Languages like {\CC} and Ada allow programmers to define operators for new types, but do not require that these relationships be preserved, or even that all of the operators be implemented. 3704 3768 Completeness and consistency is left to the good taste and discretion of the programmer. … … 3713 3777 The different comparison operators have obvious relationships, but there is no obvious subset of the operations to use in the implementation of the others. 3714 3778 However, it is usually convenient to implement a single comparison function that returns a negative integer, 0, or a positive integer if its first argument is respectively less than, equal to, or greater than its second argument; 3715 the library function ©strcmp©is an example.3716 3717 C and \CFA have an extra, non-obvious comparison operator: `` ©!©'', logical negation, returns 1 if its operand compares equal to 0, and 0 otherwise.3779 the library function \lstinline$strcmp$ is an example. 3780 3781 C and \CFA have an extra, non-obvious comparison operator: ``\lstinline$!$'', logical negation, returns 1 if its operand compares equal to 0, and 0 otherwise. 3718 3782 \begin{lstlisting} 3719 3783 trait comparable( otype T ) { … … 3763 3827 \end{lstlisting} 3764 3828 3765 Note that, although an arithmetic type would certainly provide comparison functions, and an integral type would provide arithmetic operations, there does not have to be any relationship among ©int_base©, ©arith_base© and ©comparable©. 3829 Note that, although an arithmetic type would certainly provide comparison functions, and an integral type would provide arithmetic operations, there does not have to be any relationship among 3830 \lstinline$int_base$, \lstinline$arith_base$ and \lstinline$comparable$. 3766 3831 Note also that these declarations provide guidance and assistance, but they do not define an absolutely minimal set of requirements. 3767 A truly minimal implementation of an arithmetic type might only provide ©0©, ©1©, and ©?-=?©, which would be used by polymorphic ©?+=?©, ©?*=?©, and ©?/=?© functions. 3768 3769 Note also that ©short© is an integer type in C11 terms, but has no operations! 3832 A truly minimal implementation of an arithmetic type might only provide 3833 \lstinline$0$, \lstinline$1$, and \lstinline$?-=?$, which would be used by polymorphic 3834 \lstinline$?+=?$, \lstinline$?*=?$, and \lstinline$?/=?$ functions. 3835 3836 Note also that \lstinline$short$ is an integer type in C11 terms, but has no operations! 3770 3837 3771 3838 … … 3774 3841 3775 3842 Restrict allowed to qualify anything, or type/dtype parameters, but only affects pointers. 3776 This gets into ©noalias©territory.3777 Qualifying anything (`` ©short restrict rs©'') means pointer parameters of ©?++©, etc, would need restrict qualifiers.3843 This gets into \lstinline$noalias$ territory. 3844 Qualifying anything (``\lstinline$short restrict rs$'') means pointer parameters of \lstinline$?++$, etc, would need restrict qualifiers. 3778 3845 3779 3846 Enumerated types. … … 3785 3852 Color, enum Color ) really make sense? ?++ does, but it adds (int)1. 3786 3853 3787 Operators on {,signed,unsigned} char and other small types. ©?<?©harmless;3854 Operators on {,signed,unsigned} char and other small types. ?<? harmless; 3788 3855 ?*? questionable for chars. 3789 3856 Generic selections make these choices visible. 3790 Safe conversion operators? Predefined ``promotion'' function? 3791 3792 ©register© assignment might be handled as assignment to a temporary with copying back and forth, but copying must not be done by assignment. 3793 3794 Don't use ©ptrdiff_t© by name in the predefineds. 3857 Safe conversion operators? Predefined 3858 ``promotion'' function? 3859 3860 \lstinline$register$ assignment might be handled as assignment to a temporary with copying back and forth, but copying must not be done by assignment. 3861 3862 Don't use ptrdiff\_t by name in the predefineds. 3795 3863 3796 3864 Polymorphic objects. -
doc/user/Makefile
rf80e0218 r1b5c81ed 1 1 ## Define the appropriate configuration variables. 2 2 3 TeXLIB = .:../ LaTeXmacros:../LaTeXmacros/listings:../LaTeXmacros/enumitem:../bibliography/:4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error3 TeXLIB = .:../bibliography/:../LaTeXmacros/: 4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex 5 5 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex 6 6 … … 12 12 13 13 FIGURES = ${addsuffix .tex, \ 14 Cdecl \15 14 } 16 15 -
doc/user/user.tex
rf80e0218 r1b5c81ed 11 11 %% Created On : Wed Apr 6 14:53:29 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Mon Jun 20 10:47:22201614 %% Update Count : 57513 %% Last Modified On : Sun Apr 10 22:50:15 2016 14 %% Update Count : 72 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 17 17 % requires tex packages: texlive-base texlive-latex-base tex-common texlive-humanities texlive-latex-extra texlive-fonts-recommended 18 18 19 % inline code ©...© (copyright symbol) emacs: C-q M-) 20 % red highlighting ®...® (registered trademark symbol) emacs: C-q M-. 21 % blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_ 22 % green highlighting ¢...¢ (cent symbol) emacs: C-q M-" 23 % LaTex escape §...§ (section symbol) emacs: C-q M-' 24 % keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^ 25 % math escape $...$ (dollar symbol) 26 27 \documentclass[twoside,11pt]{article} 28 19 \documentclass[openright,twoside]{article} 29 20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 30 21 … … 33 24 \usepackage{textcomp} 34 25 \usepackage[latin1]{inputenc} 35 \usepackage{fullpage,times,comment} 36 \usepackage{epic,eepic} 37 \usepackage{upquote} % switch curled `'" to straight 26 \usepackage{upquote} 27 \usepackage{fullpage,times} 38 28 \usepackage{xspace} 39 \usepackage{varioref} % extended references 40 \usepackage{listings} % format program code 41 \usepackage[flushmargin]{footmisc} % support label/reference in footnote 42 \usepackage{latexsym} % \Box glyph 29 \usepackage{varioref} 30 \usepackage{listings} 31 \usepackage{footmisc} 32 \usepackage{comment} 33 \usepackage{latexsym} % \Box 43 34 \usepackage{mathptmx} % better math font with "times" 44 \usepackage[usenames]{color}45 35 \usepackage[pagewise]{lineno} 46 36 \renewcommand{\linenumberfont}{\scriptsize\sffamily} 47 \input{common} % bespoke macros used in the document48 37 \usepackage[dvips,plainpages=false,pdfpagelabels,pdfpagemode=UseNone,colorlinks=true,pagebackref=true,linkcolor=blue,citecolor=blue,urlcolor=blue,pagebackref=true,breaklinks=true]{hyperref} 49 38 \usepackage{breakurl} 50 39 \renewcommand{\UrlFont}{\small\sf} 51 40 52 \makeatletter53 \renewcommand{\pagestyle}[1]{54 \@ifundefined{ps@#1}%55 \undefinedpagestyle56 {\def\@tempa{#1}\def\@tempb{headings}\def\@tempc{myheadings}%57 \ifx\@tempa\@tempb\setlength{\topmargin}{-0.25in}\setlength{\headsep}{0.25in}%58 \else\ifx\@tempa\@tempc\setlength{\topmargin}{-0.25in}\setlength{\headsep}{0.25in}\fi\fi%59 \@nameuse{ps@#1}}}% pagestyle60 \makeatother61 62 63 41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 64 42 43 % Bespoke macros used in the document. 44 \input{common} 45 46 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 47 65 48 % Names used in the document. 66 49 67 \newcommand{\Version}{1.0.0}68 50 \newcommand{\CS}{C\raisebox{-0.9ex}{\large$^\sharp$}\xspace} 69 70 \newcommand{\Textbf}[2][red]{{\color{#1}{\textbf{#2}}}}71 \newcommand{\Emph}[2][red]{{\color{#1}\textbf{\emph{#2}}}}72 \newcommand{\R}[1]{\Textbf{#1}}73 \newcommand{\B}[1]{{\Textbf[blue]{#1}}}74 \newcommand{\G}[1]{{\Textbf[OliveGreen]{#1}}}75 76 \newsavebox{\LstBox}77 51 78 52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 83 57 84 58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 59 60 \begin{document} 61 \pagestyle{headings} 62 \linenumbers % comment out to turn off line numbering 85 63 86 64 \title{\Huge … … 89 67 Version 1.0 \\ 90 68 \vspace*{0.25in} 91 \huge``describe not prescribe'' 69 \huge``describe not prescribe'' \\ 92 70 \vspace*{1in} 93 71 }% title 94 95 72 \author{\huge 96 Peter A. Buhr and ... 73 Peter A. Buhr and ... \\ 97 74 }% author 98 99 75 \date{ 100 DRAFT \\ \today 76 DRAFT \\ 77 \today 101 78 }% date 102 79 103 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%104 105 \begin{document}106 \pagestyle{headings}107 80 \pagenumbering{roman} 108 \ linenumbers % comment out to turn off line numbering81 \pagestyle{plain} 109 82 110 83 \maketitle … … 124 97 125 98 \clearpage 126 \markright{\CFA User Manual}127 99 \pagenumbering{arabic} 128 100 … … 131 103 132 104 \CFA\footnote{Pronounced ``C-for-all'', and written \CFA, CFA, or \CFL.} is a modern general-purpose programming-language, designed an as evolutionary step forward from the C programming language. 133 The syntax of the \CFA language builds from C, and should look immediately familiar to C /\CCprogrammers.105 The syntax of the \CFA language builds from C, and should look immediately familiar to C programmers. 134 106 % Any language feature that is not described here can be assumed to be using the standard C11 syntax. 135 \CFA adds many modern programming-language features that directly lead to increased \emph{safety} and \emph{productivity}, while maintaining interoperability with existing C programs and achieving Cperformance.107 \CFA adds many modern programming-language features, which directly leads to increased safety and productivity, while maintaining interoperability with existing C programs and maintaining C-like performance. 136 108 Like C, \CFA is a statically typed, procedural language with a low-overhead runtime, meaning there is no global garbage-collection. 137 109 The primary new features include parametric-polymorphism routines and types, exceptions, concurrency, and modules. … … 144 116 New programs can be written in \CFA using a combination of C and \CFA features. 145 117 \CC had a similar goal 30 years ago, but has struggled over the intervening time to incorporate modern programming-language features because of early design choices. 146 \CFA has 30 years of hindsight and aclean starting point.118 \CFA has 30 years of hindsight and clean starting point. 147 119 148 120 Like \CC, there may be both an old and new ways to achieve the same effect. 149 121 For example, the following programs compare the \CFA and C I/O mechanisms. 150 122 \begin{quote2} 151 \begin{tabular}{@{}l@{\hspace{3 em}}l@{}}152 \multicolumn{1}{c@{\hspace{3 em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\123 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 124 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 153 125 \begin{lstlisting} 154 126 #include <fstream> 155 127 int main( void ) { 156 128 int x = 0, y = 1, z = 2; 157 ®sout | x | y | z | endl;®129 sout | x | y | z | endl; 158 130 } 159 131 \end{lstlisting} … … 163 135 int main( void ) { 164 136 int x = 0, y = 1, z = 2; 165 ®printf( "%d %d %d\n", x, y, z );®137 printf( "%d %d %d\n", x, y, z ); 166 138 } 167 139 \end{lstlisting} … … 169 141 \end{quote2} 170 142 Both programs output the same result. 171 While the \CFA I/O looks similar to the \CC output style, there are important differences, such as automatic spacing between variables as in Python (see also~\VRef{s:IOLibrary}).172 173 This document is a usermanual for the \CFA programming language, targeted at \CFA programmers.143 While the \CFA I/O looks similar to the \CC output style, there are several important differences, such as automatic spacing between variables as in Python (see also~\VRef{s:IOLibrary}). 144 145 This document is a reference manual for the \CFA programming language, targeted at \CFA programmers. 174 146 Implementers may refer to the \CFA Programming Language Specification for details about the language syntax and semantics. 175 147 In its current state, this document covers the intended core features of the language. … … 180 152 \section{History} 181 153 182 The \CFA project started with K-W C~\cite{ Buhr94a,Till89}, which extended C with new declaration syntax, multiple return values from routines, and extended assignment capabilities using the notion of tuples.154 The \CFA project started with K-W C~\cite{Till89,Buhr94a}, which extended C with new declaration syntax, multiple return values from routines, and extended assignment capabilities using the notion of tuples. 183 155 (See~\cite{Werther96} for some similar work, but for \CC.) 184 156 The original \CFA project~\cite{Ditchfield92} extended the C type system with parametric polymorphism and overloading, as opposed to the \CC approach of object-oriented extensions to the C type-system. 185 157 A first implementation of the core Cforall language was created~\cite{Bilson03,Esteves04}, but at the time there was little interesting in extending C, so work did not continue. 186 As the saying goes, ``What goes around, comes around .'', and there is now renewed interest in the C programming language because of legacy code-bases, so the \CFA project has been restarted.158 As the saying goes, ``What goes around, comes around'', and there is now renewed interest in the C programming language because of legacy code-bases, so the \CFA project has been restarted. 187 159 188 160 … … 190 162 191 163 Even with all its problems, C is a very popular programming language because it allows writing software at virtually any level in a computer system without restriction. 192 For system programming, where direct access to hardware and dealing with real-time issues is a requirement, C is usually the language of choice.164 For systems programming, where direct access to hardware and dealing with real-time issues is a requirement, C is usually the language of choice. 193 165 As well, there are millions of lines of C legacy code, forming the base for many software development projects (especially on UNIX systems). 194 166 The TIOBE index (\url{http://www.tiobe.com/tiobe_index}) for March 2016 shows programming-language popularity, with Java 20.5\%, C 14.5\%, \CC 6.7\%, \CS 4.3\%, Python 4.3\%, and all other programming languages below 3\%. 195 As well, for 30 years, C has been the number 1 and 2 most popular programming language:196 \begin{center}197 \setlength{\tabcolsep}{1.5ex}198 \begin{tabular}{@{}r|c|c|c|c|c|c|c@{}}199 Ranking & 2016 & 2011 & 2006 & 2001 & 1996 & 1991 & 1986 \\200 \hline201 Java & 1 & 1 & 1 & 3 & 29 & - & - \\202 \hline203 \R{C} & \R{2} & \R{2} & \R{2} & \R{1} & \R{1} & \R{1} & \R{1} \\204 \hline205 \CC & 3 & 3 & 3 & 2 & 2 & 2 & 7 \\206 \end{tabular}207 \end{center}208 167 Hence, C is still an extremely important programming language, with double the usage of \CC, where \CC itself is largely C code. 209 168 Finally, love it or hate it, C has been an important and influential part of computer science for 40 years and it appears it will continue to be for many more years. … … 212 171 The goal of this project is to engineer modern language features into C in an evolutionary rather than revolutionary way. 213 172 \CC~\cite{c++,ANSI14:C++} is an example of a similar project; 214 however, it largely extended the language, and did not address manyexisting problems.\footnote{%215 Two important existing problems addressed were changing the type of character literals from ©int© to ©char© and enumerator from ©int©to the type of its enumerators.}216 Fortran~\cite{Fortran08}, Ada~\cite{Ada12}, and Cobol~\cite{Cobol14} are examples of programming languages that took an evolutionary approach, where modern language features (e.g., objects, concurrency)are added and problems fixed within the framework of the existing language.173 however, it largely extended the language, and did not address existing problems.\footnote{% 174 Two important existing problems addressed were changing the type of character literals from \lstinline@int@ to \lstinline@char@ and enumerator from \lstinline@int@ to the type of its enumerators.} 175 Fortran~\cite{Fortran08}, Ada~\cite{Ada12}, and Cobol~\cite{Cobol14} are examples of programming languages that took an evolutionary approach, where modern language features are added and problems fixed within the framework of the existing language. 217 176 Java~\cite{Java8}, Go~\cite{Go}, Rust~\cite{Rust} and D~\cite{D} are examples of the revolutionary approach for modernizing C/\CC, resulting in a new language rather than an extension of the descendent. 218 177 These languages have different syntax and semantics from C, and do not interoperate directly with C, largely because of garbage collection. 219 178 As a result, there is a significant learning curve to move to these languages, and C legacy-code must be rewritten. 220 These costs can be prohibitive for many companies with a large software base in C/\CC, and a significant number of programmers requiringretraining to a new programming language.221 222 The result of this project is a language that is largely backwards compatible with C11~\cite{C11}, but fixing some of the well known C problems and containing many modern language features.223 Without significant extension to the C programming language, it is becomingunable to cope with the needs of modern programming problems and programmers;179 These costs can be prohibitive for many companies with a large software base in C/\CC, and many programmers that require retraining to a new programming language. 180 181 The result of this project is a language that is largely backwards compatible with C11~\cite{C11}, but containing many modern language features and fixing some of the well known C problems. 182 Without significant extension to the C programming language, C will be unable to cope with the needs of modern programming problems and programmers; 224 183 as a result, it will fade into disuse. 225 184 Considering the large body of existing C code and programmers, there is significant impetus to ensure C is transformed into a modern programming language. … … 234 193 This feature allows users of \CFA to take advantage of the existing panoply of C libraries from inside their \CFA code. 235 194 In fact, one of the biggest issues for any new programming language is establishing a minimum level of library code to support a large body of activities. 236 Language developers often state that adequate library support takes more work than designing and implementing the language itself.195 Programming-language developers often state that adequate library support takes more work than designing and implementing the language itself. 237 196 Like \CC, \CFA starts with immediate access to all exiting C libraries, and in many cases, can easily wrap library routines with simpler and safer interfaces, at very low cost. 238 Hence, \CFA begins by leveraging the large repository of C libraries with little cost.239 197 240 198 However, it is necessary to differentiate between C and \CFA code because of name overloading, as for \CC. 241 For example, the C math-library provides the following routines for computing the absolute value of the basic type s: ©abs©, ©labs©, ©llabs©, ©fabs©, ©fabsf©, ©fabsl©, ©cabsf©, ©cabs©, and ©cabsl©.242 Whereas, \CFA wraps each of these routines into one s with the common name ©abs©:199 For example, the C math-library provides the following routines for computing the absolute value of the basic type: \lstinline@abs@, \lstinline@labs@, \lstinline@llabs@, \lstinline@fabs@, \lstinline@fabsf@, \lstinline@fabsl@, \lstinline@cabsf@, \lstinline@cabs@, and \lstinline@cabsl@. 200 Whereas, \CFA wraps each of these routines into one with the common name \lstinline@abs@. 243 201 \begin{lstlisting} 244 202 char abs( char ); 245 203 extern "C" { 246 int abs( int ); // use default C routine for int204 int abs( int ); // use default C routine for int 247 205 } // extern "C" 248 206 long int abs( long int ); … … 255 213 long double _Complex abs( long double _Complex ); 256 214 \end{lstlisting} 257 The problem is the name clash between the library routine ©abs© and the \CFA names ©abs©.258 Hence, names appearing in an ©extern "C"©block have \newterm{C linkage}.215 The problem is the name clash between the library routine \lstinline@abs@ and the \CFA names \lstinline@abs@. 216 Hence, names appearing in an \lstinline@extern "C"@ block have \newterm{C linkage}. 259 217 Then overloading polymorphism uses a mechanism called \newterm{name mangling} to create unique names that are different from C names, which are not mangled. 260 218 Hence, there is the same need as in \CC, to know if a name is a C or \CFA name, so it can be correctly formed. 261 219 There is no way around this problem, other than C's approach of creating unique names for each pairing of operation and type. 262 220 This example strongly illustrates a core idea in \CFA: \emph{the power of a name}. 263 The name `` ©abs©'' evokes the notion of absolute value, and many mathematical types provide the notion of absolute value.264 Hence, knowing the name ©abs©should be sufficient to apply it to any type where it is applicable.221 The name ``\lstinline@abs@'' evokes the notion of absolute value, and many mathematical types provide the notion of absolute value. 222 Hence, knowing the name \lstinline@abs@ should be sufficient to apply it to any type where it is applicable. 265 223 The time savings and safety of using one name uniformly versus $N$ unique names should not be underestimated. 266 224 267 225 268 \section[Compiling CFA Program]{Compiling \CFA Program} 269 270 The command ©cfa© is used to compile \CFA program(s), and is based on the GNU ©gcc©\index{gcc} command, e.g.: 271 \begin{lstlisting} 272 cfa§\indexc{cfa}\index{compilation!cfa@©cfa©}§ [ gcc-options ] C/§\CFA§-files [ assembler/loader-files ] 273 \end{lstlisting} 274 By default, \CFA programs having the following ©gcc© flags turned on: 226 \section{Compiling \CFA} 227 228 The command \lstinline@cfa@ is used to compile \CFA program(s). 229 This command works like the GNU \lstinline@gcc@\index{gcc} command, e.g.: 230 \begin{lstlisting} 231 cfa [ gcc-options ] C/@{\CFA}@-files [ assembler/loader-files ] 232 \end{lstlisting} 233 By default, \CFA programs having the following \lstinline@gcc@ flags turned on: 275 234 \begin{description} 276 \item\hspace*{-0.6ex}\Indexc{-std=gnu99}\index{compilation option!-std=gnu99@{©-std=gnu99©}} 235 \item 236 \hspace*{-4pt}\lstinline@-std=gnu99@ 277 237 The 1999 C standard plus GNU extensions. 278 \item\hspace*{-0.6ex}\Indexc{-fgnu89-¶inline¶}\index{compilation option!-fgnu89-inline@{©-fgnu89-¶inline¶©}}279 Use the traditional GNU semantics for inline routines in C99 mode, which allows inline routines in header files.280 238 \end{description} 281 239 The following new \CFA option is available: 282 240 \begin{description} 283 \item\hspace*{-0.6ex}\Indexc{-CFA}\index{compilation option!-CFA@{©-CFA©}} 241 \item 242 \hspace*{-4pt}\lstinline@-CFA@ 284 243 Only the C preprocessor and the \CFA translator steps are performed and the transformed program is written to standard output, which makes it possible to examine the code generated by the \CFA translator. 285 244 \end{description} 286 245 287 The following preprocessor variables are available:288 \begin{description}289 \item\hspace*{-0.6ex}\Indexc{__CFA__}\index{preprocessor variables!__CFA__@{©__CFA__©}}290 is always available during preprocessing and its value is the current major \Index{version number} of \CFA.\footnote{291 The C preprocessor allows only integer values in a preprocessor variable so a value like ``\Version'' is not allowed.292 Hence, the need to have three variables for the major, minor and patch version number.}293 294 \item\hspace*{-0.6ex}\Indexc{__CFA_MINOR__}\index{preprocessor variables!__CFA_MINOR__@{©__CFA_MINOR__©}}295 is always available during preprocessing and its value is the current minor \Index{version number} of \CFA.296 297 \item\hspace*{-0.6ex}\Indexc{__CFA_PATCH__}\index{preprocessor variables!__CFA_PATCH__@©__CFA_PATCH__©}298 is always available during preprocessing and its value is the current patch \Index{version number} of \CFA.299 300 \item\hspace*{-0.6ex}\Indexc{__CFA__}\index{preprocessor variables!__CFA__@©__CFA__©} and \Indexc{__CFORALL__}\index{preprocessor variables!__CFORALL__@©__CFORALL__©}301 are always available during preprocessing and have no value.302 \end{description}303 304 These preprocessor variables allow conditional compilation of programs that must work differently in these situations.305 For example, to toggle between C and \CFA extensions, using the following:306 \begin{lstlisting}307 #ifndef __CFORALL__308 #include <stdio.h> // C header file309 #else310 #include <fstream> // §\CFA{}§ header file311 #endif312 \end{lstlisting}313 which conditionally includes the correct header file, if the program is compiled using ©gcc© or ©cfa©.314 315 246 316 247 \section{Underscores in Constants} … … 318 249 Numeric constants are extended to allow \Index{underscore}s within constants\index{constant!underscore}, e.g.: 319 250 \begin{lstlisting} 320 2 ®_®147®_®483®_®648;// decimal constant321 56_ul; // decimal unsigned long constant322 0_377; // octal constant323 0x_ff_ff; // hexadecimal constant324 0x_ef3d_aa5c; // hexadecimal constant325 3.141_592_654; // floating point constant326 10_e_+1_00; // floating point constant327 0x_ff_ff_p_3; // hexadecimal floating point328 0x_1.ffff_ffff_p_128_l; // hexadecimal floating point long constant329 L_"\x_ff_ee"; // wide character constant251 2`_`147`_`483`_`648; // decimal constant 252 56_ul; // decimal unsigned long constant 253 0_377; // octal constant 254 0x_ff_ff; // hexadecimal constant 255 0x_ef3d_aa5c; // hexadecimal constant 256 3.141_592_654; // floating point constant 257 10_e_+1_00; // floating point constant 258 0x_ff_ff_p_3; // hexadecimal floating point 259 0x_1.ffff_ffff_p_128_l; // hexadecimal floating point long constant 260 L_"\x_ff_ee"; // wide character constant 330 261 \end{lstlisting} 331 262 The rules for placement of underscores is as follows: 332 263 \begin{enumerate} 333 264 \item 334 A sequence of underscores is disallowed, e.g., ©12__34©is invalid.265 A sequence of underscores is disallowed, e.g., \lstinline@12__34@ is invalid. 335 266 \item 336 267 Underscores may only appear within a sequence of digits (regardless of the digit radix). 337 In other words, an underscore cannot start or end a sequence of digits, e.g., ©_1©, ©1_© and ©_1_©are invalid (actually, the 1st and 3rd examples are identifier names).268 In other words, an underscore cannot start or end a sequence of digits, e.g., \lstinline@_1@, \lstinline@1_@ and \lstinline@_1_@ are invalid (actually, the 1st and 3rd examples are identifier names). 338 269 \item 339 270 A numeric prefix may end with an underscore; 340 271 a numeric infix may begin and/or end with an underscore; 341 272 a numeric suffix may begin with an underscore. 342 For example, the octal ©0© or hexadecimal ©0x© prefix may end with an underscore ©0_377© or ©0x_ff©;343 the exponent infix ©E© may start or end with an underscore ©1.0_E10©, ©1.0E_10© or ©1.0_E_10©;344 the type suffixes ©U©, ©L©, etc. may start with an underscore ©1_U©, ©1_ll© or ©1.0E10_f©.273 For example, the octal \lstinline@0@ or hexadecimal \lstinline@0x@ prefix may end with an underscore \lstinline@0_377@ or \lstinline@0x_ff@; 274 the exponent infix \lstinline@E@ may start or end with an underscore \lstinline@1.0_E10@, \lstinline@1.0E_10@ or \lstinline@1.0_E_10@; 275 the type suffixes \lstinline@U@, \lstinline@L@, etc. may start with an underscore \lstinline@1_U@, \lstinline@1_ll@ or \lstinline@1.0E10_f@. 345 276 \end{enumerate} 346 277 It is significantly easier to read and enter long constants when they are broken up into smaller groupings (most cultures use comma or period among digits for the same purpose). 347 This extension is backwards compatible, matches with the use of underscore in variable names, and appears in Ada and Java 8.278 This extension is backwards compatible, matches with the use of underscore in variable names, and appears in Ada and Java. 348 279 349 280 … … 353 284 C declaration syntax is notoriously confusing and error prone. 354 285 For example, many C programmers are confused by a declaration as simple as: 355 \begin{quote2} 356 \begin{tabular}{@{}ll@{}} 357 \begin{lstlisting} 358 int *x[5] 359 \end{lstlisting} 360 & 361 \raisebox{-0.75\totalheight}{\input{Cdecl}} 362 \end{tabular} 363 \end{quote2} 364 Is this an array of 5 pointers to integers or a pointer to an array of 5 integers? 286 \begin{lstlisting} 287 int *x[ 10 ] 288 \end{lstlisting} 289 Is this a pointer to an array of 10 integers or an array of 10 pointers to integers? 365 290 Another example of confusion results from the fact that a routine name and its parameters are embedded within the return type, mimicking the way the return value is used at the routine's call site. 366 291 For example, a routine returning a pointer to an array of integers is defined and used in the following way: 367 292 \begin{lstlisting} 368 int (*f())[ 5] {...}; // definition mimics usage369 ... (*f())[ 3] += 1;293 int (*f())[ 10 ] {...}; 294 ... (*f())[ 3 ] += 1; // definition mimics usage 370 295 \end{lstlisting} 371 296 Essentially, the return type is wrapped around the routine name in successive layers (like an onion). 372 297 While attempting to make the two contexts consistent was a laudable goal, it has not worked out in practice. 373 298 374 \CFA provides its own type, variable and routine declarations, using a different syntax. 375 The new declarations place qualifiers to the left of the base type, while C declarations place qualifiers to the right of the base type. 376 In the following example, \R{red} is for the base type and \B{blue} is for the qualifiers. 377 The \CFA declarations move the qualifiers to the left of the base type, i.e., blue to the left of the red, while the qualifiers have the same meaning but are ordered left to left to right to specify the variable's type. 299 \CFA provides its own type, variable and routine declarations, using a slightly different syntax. 300 The new declarations place modifiers to the left of the base type, while C declarations place modifiers to the right of the base type. 301 The only exception is bit field specification, which always appear to the right of the base type. 302 C and the new \CFA declarations may appear together in the same program block, but cannot be mixed within a specific declaration. 303 304 In \CFA declarations, the same tokens are used as in C: the character \lstinline@*@ is used to indicate a pointer, square brackets \lstinline@[@\,\lstinline@]@ are used to represent an array, and parentheses \lstinline@()@ are used to indicate a routine parameter. 305 However, unlike C, \CFA type declaration tokens are specified from left to right and the entire type specification is distributed across all variables in the declaration list. 306 For instance, variables \lstinline@x@ and \lstinline@y@ of type pointer to integer are defined in \CFA as follows: 378 307 \begin{quote2} 379 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 380 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 381 \begin{lstlisting} 382 ß[5] *ß ®int® x1; 383 ß* [5]ß ®int® x2; 384 ß[* [5] int]ß f®( int p )®; 308 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 309 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 310 \begin{lstlisting} 311 `* int x, y;` 385 312 \end{lstlisting} 386 313 & 387 314 \begin{lstlisting} 388 ®int® ß*ß x1 ß[5]ß; 389 ®int® ß(*ßx2ß)[5]ß; 390 ßint (*ßf®( int p )®ß)[5]ß; 391 \end{lstlisting} 392 \end{tabular} 393 \end{quote2} 394 The only exception is bit field specification, which always appear to the right of the base type. 395 % Specifically, the character ©*© is used to indicate a pointer, square brackets ©[©\,©]© are used to represent an array or function return value, and parentheses ©()© are used to indicate a routine parameter. 396 However, unlike C, \CFA type declaration tokens are distributed across all variables in the declaration list. 397 For instance, variables ©x© and ©y© of type pointer to integer are defined in \CFA as follows: 398 \begin{quote2} 399 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 400 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 401 \begin{lstlisting} 402 ®*® int x, y; 403 \end{lstlisting} 404 & 405 \begin{lstlisting} 406 int ®*®x, ®*®y; 315 int *x, *y; 407 316 \end{lstlisting} 408 317 \end{tabular} … … 410 319 Other examples are: 411 320 \begin{quote2} 412 \begin{tabular}{@{}l@{\hspace{3 em}}l@{\hspace{2em}}l@{}}413 \multicolumn{1}{c@{\hspace{3 em}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{2em}}}{\textbf{C}} \\414 \begin{lstlisting} 415 [ 5] int z;416 [ 5] * char w;417 * [ 5] double v;321 \begin{tabular}{@{}l@{\hspace{30pt}}l@{\hspace{20pt}}l@{}} 322 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{20pt}}}{\textbf{C}} \\ 323 \begin{lstlisting} 324 [ 10 ] int z; 325 [ 10 ] * char w; 326 * [ 10 ] double v; 418 327 struct s { 419 328 int f0:3; 420 329 * int f1; 421 [ 5] * int f2;330 [ 10 ] * int f2; 422 331 }; 423 332 \end{lstlisting} 424 333 & 425 334 \begin{lstlisting} 426 int z[ 5];427 char *w[ 5];428 double (*v)[ 5];335 int z[ 10 ]; 336 char *w[ 10 ]; 337 double (*v)[ 10 ]; 429 338 struct s { 430 339 int f0:3; 431 340 int *f1; 432 int *f2[ 5]341 int *f2[ 10 ] 433 342 }; 434 343 \end{lstlisting} 435 344 & 436 345 \begin{lstlisting} 437 // array of 5integers438 // array of 5pointers to char439 // pointer to array of 5doubles346 // array of 10 integers 347 // array of 10 pointers to char 348 // pointer to array of 10 doubles 440 349 441 350 // common bit field syntax … … 447 356 \end{quote2} 448 357 449 All type qualifiers, e.g., ©const©, ©volatile©, etc., are used in the normal way with the new declarations and alsoappear left to right, e.g.:358 All type qualifiers, i.e., \lstinline@const@ and \lstinline@volatile@, are used in the normal way with the new declarations but appear left to right, e.g.: 450 359 \begin{quote2} 451 \begin{tabular}{@{}l@{\hspace{ 1em}}l@{\hspace{1em}}l@{}}452 \multicolumn{1}{c@{\hspace{ 1em}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{1em}}}{\textbf{C}} \\360 \begin{tabular}{@{}l@{\hspace{30pt}}l@{\hspace{20pt}}l@{}} 361 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{20pt}}}{\textbf{C}} \\ 453 362 \begin{lstlisting} 454 363 const * const int x; 455 const * [ 5] const int y;364 const * [ 10 ] const int y; 456 365 \end{lstlisting} 457 366 & 458 367 \begin{lstlisting} 459 368 int const * const x; 460 const int (* const y)[ 5]369 const int (* const y)[ 10 ] 461 370 \end{lstlisting} 462 371 & 463 372 \begin{lstlisting} 464 373 // const pointer to const integer 465 // const pointer to array of 5const integers374 // const pointer to array of 10 const integers 466 375 \end{lstlisting} 467 376 \end{tabular} 468 377 \end{quote2} 469 All declaration qualifiers, e.g., ©extern©, ©static©, etc., are used in the normal way with the new declarations but can only appear at the start of a \CFA routine declaration,\footnote{\label{StorageClassSpecifier}378 All declaration qualifiers, i.e., \lstinline@extern@, \lstinline@static@, etc., are used in the normal way with the new declarations but can only appear at the start of a \CFA routine declaration,\footnote{\label{StorageClassSpecifier} 470 379 The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature.~\cite[\S~6.11.5(1)]{C11}} e.g.: 471 380 \begin{quote2} 472 \begin{tabular}{@{}l@{\hspace{3 em}}l@{\hspace{2em}}l@{}}473 \multicolumn{1}{c@{\hspace{3 em}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{2em}}}{\textbf{C}} \\474 \begin{lstlisting} 475 extern [ 5] int x;381 \begin{tabular}{@{}l@{\hspace{30pt}}l@{\hspace{20pt}}l@{}} 382 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{20pt}}}{\textbf{C}} \\ 383 \begin{lstlisting} 384 extern [ 10 ] int x; 476 385 static * const int y; 477 386 \end{lstlisting} 478 387 & 479 388 \begin{lstlisting} 480 int extern x[ 5];389 int extern x[ 10 ]; 481 390 const int static *y; 482 391 \end{lstlisting} 483 392 & 484 393 \begin{lstlisting} 485 // externally visible array of 5integers394 // externally visible array of 10 integers 486 395 // internally visible pointer to constant int 487 396 \end{lstlisting} … … 489 398 \end{quote2} 490 399 491 Unsupported are K\&R C declarations where the base type defaults to ©int©, if no type is specified,\footnote{492 At least one type specifier shall be given in the declaration specifiers in each declaration, and in the specifier-qualifier list in each structure declaration and type name~\cite[\S~6.7.2(2)]{C11}} 400 Unsupported are K\&R C declarations where the base type defaults to \lstinline@int@, if no type is specified\footnote{ 401 At least one type specifier shall be given in the declaration specifiers in each declaration, and in the specifier-qualifier list in each structure declaration and type name~\cite[\S~6.7.2(2)]{C11}}, 493 402 e.g.: 494 403 \begin{lstlisting} 495 x; // int x496 *y; // int *y497 f( p1, p2 ); // int f( int p1, int p2 );498 f( p1, p2 ) {} // int f( int p1, int p2 ) {}499 \end{lstlisting} 500 501 Finally, new \CFA declarations may appear together with C declarations in the same program block, but cannot be mixed within a specific declaration.404 x; // int x 405 *y; // int *y 406 f( p1, p2 ); // int f( int p1, int p2 ); 407 f( p1, p2 ) {} // int f( int p1, int p2 ) {} 408 \end{lstlisting} 409 410 As stated above, the two styles of declaration may appear together in the same block. 502 411 Therefore, a programmer has the option of either continuing to use traditional C declarations or take advantage of the new style. 503 412 Clearly, both styles need to be supported for some time due to existing C-style header-files, particularly for UNIX systems. 504 413 505 414 506 \section{ Reference Pointers}507 508 Program variables are implicit pointers to memory locations generated by the compiler and automatically dereferenced, as in:415 \section{Type Operators} 416 417 The new declaration syntax can be used in other contexts where types are required, e.g., casts and the pseudo-routine \lstinline@sizeof@: 509 418 \begin{quote2} 510 \begin{tabular}{@{}l|l@{}} 511 \multicolumn{1}{c|}{Variables} & \multicolumn{1}{c}{Compiler generated addresses (100, 104) and dereferencing} \\ 512 \hline 513 \begin{lstlisting} 514 int x, y; 515 x = 3; 516 y = x; 419 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 420 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 421 \begin{lstlisting} 422 y = (* int)x; 423 i = sizeof([ 10 ] * int); 517 424 \end{lstlisting} 518 425 & 519 426 \begin{lstlisting} 520 int * const x = (int *)100, * const y = (int *)104; 521 *x = 3; // implicit dereference 522 *y = *x; 427 y = (int *)x; 428 i = sizeof(int *[ 10 ]); 523 429 \end{lstlisting} 524 430 \end{tabular} 525 431 \end{quote2} 526 A variable name only points to one location during its lifetime, i.e., it is a \Index{non-mutable} pointer.527 For example, the variables ©x© and ©y© are constant pointers.528 Variable addresses are usually not stored in memory and loaded before dereferencing;529 instead, variable addresses are stored in instructions, so an instruction fetch implicitly gets the variable's address.530 \begin{quote2}531 \begin{tabular}{@{}l|l@{}}532 \begin{lstlisting}533 x = x + 1534 &x = *(&x) + 1535 (100) = *(100) + 1536 \end{lstlisting}537 &538 \begin{lstlisting}539 ld r1,(100) // address of x540 add r1,1541 st r1,(100) // address of x542 \end{lstlisting}543 \end{tabular}544 \end{quote2}545 Finally, the non-mutable nature of variables and the fact that there is no storage for a variable address means pointer assignment is impossible.546 Therefore, the expression ©x = y© only has one meaning, ©*x = *y©, i.e., copy the variable values, so explicitly writing the dereferences is unnecessary even though it occurs implicitly as part of instruction decoding.547 548 A variable name is generalized by a \newterm{pointer}, which is a mutable pointer variable that can point to more than one memory location during its life-time (like an integer variable versus a literal).549 Hence, a pointer occupies memory to store its current address, and the pointer's value is loaded by dereferencing, e.g.:550 \begin{lstlisting}551 int x, y, z, ®*® p1, ®*® p2;552 p1 = ®&®x; // p1 points to x553 p2 = p1; // p2 also points to x554 p1 = ®&®y; // p1 points to y555 p2 = p1 + 1; // p2 points to z, pointer arithmetic556 \end{lstlisting}557 In many cases, a pointer name is anonymous (dynamically computed), so it cannot be stored directly in an instruction like a variable name.558 559 Pointers have a duality: an address in memory or the value at that address.560 In many cases, the compiler can infer which of these operations are needed:561 \begin{lstlisting}562 p2 = p1 + x; // compiler infers *p2 = *p1 + x;563 \end{lstlisting}564 because adding the integer value of ©x© to the address of ©p1© and storing the resulting address into ©p2© is an unlikely operation.565 Algol68~\cite{Algol68} inferences pointer dereferencing to select the best meaning for each pointer usage.566 However, there are ambiguous cases, especially when pointer arithmetic is possible, as in C:567 \begin{lstlisting}568 p1 = p2; // p1 = p2 or *p1 = *p2569 p1 = p1 + 1; // p1 = p1 + 1 or *p1 = *p1 + 1570 \end{lstlisting}571 572 Most programming languages pick a default operation and supply an explicit operation to resolve the pointer-duality ambiguity.573 In C, the default operation for pointers is manipulate the pointer value and the pointed-to value is explicitly accessed by dereferencing ©*©.574 \begin{lstlisting}575 p1 = p2; // pointer value assignment576 *p1 = *p1 + 1; // pointed-to value assignment/operation577 \end{lstlisting}578 which works well for low-level memory management, such as ©malloc©/©free©, where manipulation of addresses in the primary operation, and data is only occasionally accessed.579 580 However, in the majority of pointer usages, the pointed-to value is required rather than the pointer address.581 \begin{lstlisting}582 *p2 = ((*p1 + *p2) * (*p2 - *p1)) / (*p1 - *p2);583 \end{lstlisting}584 And, it is tedious and error prone to explicitly write the dereferencing, especially when pointer arithmetic with integer values is allowed.585 It is better to have the compiler generate the dereferencing:586 \begin{lstlisting}587 p2 = ((p1 + p2) * (p2 - p1)) / (p1 - p2);588 \end{lstlisting}589 590 To provide this capability, it is necessary to switch the default operation to resolve the pointer-duality ambiguity, which requires a new kind of pointer called a \newterm{reference} pointer.591 \begin{lstlisting}592 int x, y, z, ®&® r1, ®&® r2; // & denotes reference pointer593 r1 ®:=® &x; // r1 points to x594 r2 ®:=® &r1; // r2 also points to x595 r1 ®:=® &y; // r1 points to y596 r2 ®:=® &r1 + 1; // r2 points to z597 r2 = ((r1 + r2) * (r2 - r1)) / (r1 - r2); // implicit dereferencing598 \end{lstlisting}599 Hence, a reference pointer behaves like a variable name for the current variable it is pointing-to, so dereferencing a reference pointer returns the address of its pointed-to value, i.e., the address in the reference pointer.600 Notice, the explicit operator ©:=© to denote pointer assignment to a reference pointer to support both aspects of pointer duality.601 Note, \CC deals with the pointer duality by making a reference pointer a constant (©const©), like a plain variable, so there is no reference assignment.602 603 Like pointers, it is possible to use ©const© qualifiers with a reference:604 \begin{lstlisting}605 const int cx = 5; // cannot change cx;606 const int & r3 = &cx; // cannot change what r3 is pointing to607 r3 ®:=® &cx; // can change r3608 r3 = 7; // error, cannot change cx609 int & const r4 = &x; // must be initialized, §\CC§ reference610 r4 ®:=® &x; // error, cannot change r4611 const int & const r5 = &cx; // must be initialized, §\CC§ reference612 r5 = 7; // error, cannot change cx613 r5 ®:=® &cx; // error, cannot change r5614 \end{lstlisting}615 Note, for type ©& const©, there is no pointer assignment, so ©r4 := &x© is disallowed, and the pointer value cannot be ©0©.616 Since there is only one meaning for ©r4 = x©, which is to change the value of the variable pointed to by ©r4©, therefore:617 \begin{itemize}618 \item619 it in impossible to take the address of ©r4© as it always means the address of what ©r4© is pointing to.620 \item621 the dereference at initialization is optional because there can only be one622 \begin{lrbox}{\LstBox}%623 \footnotesize%624 \begin{lstlisting}%625 void f( int p ) {...}626 void (*fp)( int ) = &f; // equivalent initialization627 void (*fp)( int ) = f; // missing dereference allowed628 \end{lstlisting}%629 \end{lrbox}%630 meaning.\footnote{631 This case is similar to initializing a routine pointer, where the routine constant should be dereferenced.632 \newline633 \usebox{\LstBox}634 }% footnote635 \begin{lstlisting}636 int & const r4 = &x; // equivalent initialization637 int & const r4 = x; // missing dereference allowed638 \end{lstlisting}639 \end{itemize}640 Similarly, when a ©const© reference is used for a parameters type, the call-site argument does not require a reference.641 \begin{lstlisting}642 void f( int & ri, int & const cri );643 f( &x, x ); // reference not required for second argument644 \end{lstlisting}645 Within routine ©f©, it is possible to change an argument by changing the corresponding parameter, and parameter ©ri© can be locally reassigned within ©f©.646 647 Finally, when a reference parameter has a ©const© value, it is possible to pass literals and expressions.648 \begin{lstlisting}649 void g( const int & ri, const int & const cri );650 f( &3, 3 );651 f( &(x + y), x + y );652 \end{lstlisting}653 At the call site, the compiler implicitly creates the necessary temporary that is subsequently pointed to by the reference parameter.654 Hence, changing the parameter only changes the temporary at the call site.655 For the non-©const© parameter, requiring the reference on the literal or expression makes it clear that nothing is changing at the call site and allows the call to proceed, where other languages require the programmer to explicitly create the temporary for the argument.656 657 \section{Type Operators}658 659 The new declaration syntax can be used in other contexts where types are required, e.g., casts and the pseudo-routine ©sizeof©:660 \begin{quote2}661 \begin{tabular}{@{}l@{\hspace{3em}}l@{}}662 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\663 \begin{lstlisting}664 y = (®* int®)x;665 i = sizeof(®[ 5 ] * int®);666 \end{lstlisting}667 &668 \begin{lstlisting}669 y = (®int *®)x;670 i = sizeof(®int *[ 5 ]®);671 \end{lstlisting}672 \end{tabular}673 \end{quote2}674 432 675 433 … … 677 435 678 436 \CFA also supports a new syntax for routine definition, as well as ISO C and K\&R routine syntax. 679 The point of the new syntax is to allow returning multiple values from a routine~\cite{ Galletly96,CLU}, e.g.:680 \begin{lstlisting} 681 ®[ int o1, int o2, char o3 ]®f( int i1, char i2, char i3 ) {682 §\emph{routine body}§683 } 684 \end{lstlisting} 685 where routine ©f©has three output (return values) and three input parameters.437 The point of the new syntax is to allow returning multiple values from a routine~\cite{CLU,Galletly96}, e.g.: 438 \begin{lstlisting} 439 `[ int o1, int o2, char o3 ]` f( int i1, char i2, char i3 ) { 440 @\emph{routine body}@ 441 } 442 \end{lstlisting} 443 where routine \lstinline@f@ has three output (return values) and three input parameters. 686 444 Existing C syntax cannot be extended with multiple return types because it is impossible to embed a single routine name within multiple return type specifications. 687 445 688 In detail, the brackets, ©[]©, enclose the result type, where each return value is named and that name is a local variable of the particular return type.\footnote{446 In detail, the brackets, \lstinline@[]@, enclose the result type, where each return value is named and that name is a local variable of the particular return type.\footnote{ 689 447 Michael Tiemann, with help from Doug Lea, provided named return values in g++, circa 1989.} 690 448 The value of each local return variable is automatically returned at routine termination. 691 449 Declaration qualifiers can only appear at the start of a routine definition, e.g.: 692 450 \begin{lstlisting} 693 ®extern® [ int x ] g( int y ) {§\,§}451 extern [ int x ] g( int y ) {@\,@} 694 452 \end{lstlisting} 695 453 Lastly, if there are no output parameters or input parameters, the brackets and/or parentheses must still be specified; 696 454 in both cases the type is assumed to be void as opposed to old style C defaults of int return type and unknown parameter types, respectively, as in: 697 455 \begin{lstlisting} 698 [ §\,§] g();// no input or output parameters699 [ void ] g( void ); // no input or output parameters456 [@\,@] g(@\,@); // no input or output parameters 457 [ void ] g( void ); // no input or output parameters 700 458 \end{lstlisting} 701 459 … … 704 462 [ i, j, ch ] = f( 3, 'a', ch ); 705 463 \end{lstlisting} 706 The list of return values from f and the grouping on the left-hand side of the assignment is called a \newterm{return list}and discussed in Section 12.464 The list of return values from f and the grouping on the left-hand side of the assignment is called a tuple and discussed in Section 12. 707 465 708 466 \CFA style declarations cannot be used to declare parameters for K\&R style routine definitions because of the following ambiguity: 709 467 \begin{lstlisting} 710 int (*f(x))[ 5] int x; {}711 \end{lstlisting} 712 The string `` ©int (*f(x))[ 5 ]©'' declares a K\&R style routine of type returning a pointer to an array of 5 integers, while the string ``©[ 5 ] int x©'' declares a \CFA style parameter x of type array of 5integers.713 Since the strings overlap starting with the open bracket, ©[©, there is an ambiguous interpretation for the string.468 int (*f(x))[ 10 ] int x; {} 469 \end{lstlisting} 470 The string ``\lstinline@int (*f(x))[ 10 ]@'' declares a K\&R style routine of type returning a pointer to an array of 10 integers, while the string ``\lstinline@[ 10 ] int x@'' declares a \CFA style parameter x of type array of 10 integers. 471 Since the strings overlap starting with the open bracket, \lstinline@[@, there is an ambiguous interpretation for the string. 714 472 As well, \CFA-style declarations cannot be used to declare parameters for C-style routine-definitions because of the following ambiguity: 715 473 \begin{lstlisting} 716 474 typedef int foo; 717 int f( int (* foo) ); // foo is redefined as a parameter name718 \end{lstlisting} 719 The string `` ©int (* foo)©'' declares a C-style named-parameter of type pointer to an integer (the parenthesis are superfluous), while the same string declares a \CFA style unnamed parameter of type routine returning integer with unnamed parameter of type pointer to foo.720 The redefinition of a type name in a parameter list is the only context in C where the character ©*© can appear to the left of a type name, and \CFA relies on all type qualifier characters appearing to the right of the type name.475 int f( int (* foo) ); // foo is redefined as a parameter name 476 \end{lstlisting} 477 The string ``\lstinline@int (* foo)@'' declares a C-style named-parameter of type pointer to an integer (the parenthesis are superfluous), while the same string declares a \CFA style unnamed parameter of type routine returning integer with unnamed parameter of type pointer to foo. 478 The redefinition of a type name in a parameter list is the only context in C where the character \lstinline@*@ can appear to the left of a type name, and \CFA relies on all type modifier characters appearing to the right of the type name. 721 479 The inability to use \CFA declarations in these two contexts is probably a blessing because it precludes programmers from arbitrarily switching between declarations forms within a declaration contexts. 722 480 723 481 C-style declarations can be used to declare parameters for \CFA style routine definitions, e.g.: 724 482 \begin{lstlisting} 725 [ int ] f( * int, int * ); // returns an integer, accepts 2 pointers to integers726 [ * int, int * ] f( int ); // returns 2 pointers to integers, accepts an integer483 [ int ] f( * int, int * ); // returns an integer, accepts 2 pointers to integers 484 [ * int, int * ] f( int ); // returns 2 pointers to integers, accepts an integer 727 485 \end{lstlisting} 728 486 The reason for allowing both declaration styles in the new context is for backwards compatibility with existing preprocessor macros that generate C-style declaration-syntax, as in: 729 487 \begin{lstlisting} 730 488 #define ptoa( n, d ) int (*n)[ d ] 731 int f( ptoa( p, 5 ) ) ... // expands to int f( int (*p)[ 5] )732 [ int ] f( ptoa( p, 5 ) ) ... // expands to [ int ] f( int (*p)[ 5] )489 int f( ptoa(p,10) ) ... // expands to int f( int (*p)[ 10 ] ) 490 [ int ] f( ptoa(p,10) ) ... // expands to [ int ] f( int (*p)[ 10 ] ) 733 491 \end{lstlisting} 734 492 Again, programmers are highly encouraged to use one declaration form or the other, rather than mixing the forms. 735 493 736 494 737 \subsection{ Named ReturnValues}738 739 \Index{Named return values} handle the case where it is necessary to define a local variable whose value is then returned in a ©return©statement, as in:495 \subsection{Returning Values} 496 497 Named return values handle the case where it is necessary to define a local variable whose value is then returned in a \lstinline@return@ statement, as in: 740 498 \begin{lstlisting} 741 499 int f() { … … 745 503 } 746 504 \end{lstlisting} 747 Because the value in the return variable is automatically returned when a \CFA routine terminates, the ©return© statement \emph{does not} contain an expression, as in: 748 \newline 749 \begin{minipage}{\linewidth} 750 \begin{lstlisting} 751 ®[ int x, int y ]® f() { 752 int z; 753 ... x = 0; ... y = z; ... 754 ®return;® // implicitly return x, y 755 } 756 \end{lstlisting} 757 \end{minipage} 758 \newline 759 When the return is encountered, the current values of ©x© and ©y© are returned to the calling routine. 760 As well, ``falling off the end'' of a routine without a ©return© statement is permitted, as in: 761 \begin{lstlisting} 762 [ int x, int y ] f() { 763 ... 764 } // implicitly return x, y 765 \end{lstlisting} 766 In this case, the current values of ©x© and ©y© are returned to the calling routine just as if a ©return© had been encountered. 505 Because the value in the return variable is automatically returned when a \CFA routine terminates, the \lstinline@return@ statement \emph{does not} contain an expression, as in: 506 \begin{lstlisting} 507 `[ int x ]` f() { 508 ... x = 0; ... x = y; ... 509 `return;` // implicitly return x 510 } 511 \end{lstlisting} 512 When the return is encountered, the current value of \lstinline@x@ is returned to the calling routine. 513 As well, ``falling off the end'' of a routine without a \lstinline@return@ statement is permitted, as in: 514 \begin{lstlisting} 515 [ int x ] f() { 516 ... x = 0; ... x = y; ... 517 } // implicitly return x 518 \end{lstlisting} 519 In this case, the current value of \lstinline@x@ is returned to the calling routine just as if a \lstinline@return@ had been encountered. 767 520 768 521 … … 772 525 as well, parameter names are optional, e.g.: 773 526 \begin{lstlisting} 774 [ int x ] f (); // returning int with no parameters775 [ * int ] g (int y); // returning pointer to int with int parameter776 [ ] h (int,char); // returning no result with int and char parameters777 [ * int,int ] j (int); // returning pointer to int and int, with int parameter527 [ int x ] f (); // returning int with no parameters 528 [ * int ] g (int y); // returning pointer to int with int parameter 529 [ ] h (int,char); // returning no result with int and char parameters 530 [ * int,int ] j (int); // returning pointer to int and int, with int parameter 778 531 \end{lstlisting} 779 532 This syntax allows a prototype declaration to be created by cutting and pasting source text from the routine definition header (or vice versa). 780 533 It is possible to declare multiple routine-prototypes in a single declaration, but the entire type specification is distributed across \emph{all} routine names in the declaration list (see~\VRef{s:Declarations}), e.g.: 781 534 \begin{quote2} 782 \begin{tabular}{@{}l@{\hspace{3 em}}l@{}}783 \multicolumn{1}{c@{\hspace{3 em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\535 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 536 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 784 537 \begin{lstlisting} 785 538 [ int ] f(int), g; … … 810 563 for example, the following is incorrect: 811 564 \begin{lstlisting} 812 * [ int x ] f () fp; // routine name "f" is not allowed565 * [ int x ] f () fp; // routine name "f" is not allowed 813 566 \end{lstlisting} 814 567 … … 943 696 While in theory default arguments can be simulated with overloading, as in: 944 697 \begin{quote2} 945 \begin{tabular}{@{}l@{\hspace{3 em}}l@{}}946 \multicolumn{1}{c@{\hspace{3 em}}}{\textbf{default arguments}} & \multicolumn{1}{c}{\textbf{overloading}} \\698 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 699 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{default arguments}} & \multicolumn{1}{c}{\textbf{overloading}} \\ 947 700 \begin{lstlisting} 948 701 void p( int x, int y = 2, int z = 3 ) {...} … … 977 730 \subsection{Type Nesting} 978 731 979 \CFA allows \Index{type nesting}, and type qualification of the nested types (see \VRef[Figure]{f:TypeNestingQualification}), where as C hoists\index{typehoisting} (refactors) nested types into the enclosing scope and has no type qualification.980 \begin{ figure}981 \begin{tabular}{@{}l@{\hspace{3 em}}l|l@{}}982 \multicolumn{1}{c@{\hspace{3 em}}}{\textbf{C Type Nesting}} & \multicolumn{1}{c}{\textbf{C Implicit Hoisting}} & \multicolumn{1}{|c}{\textbf{\CFA}} \\732 \CFA allows \Index{type nesting}, and type qualification of the nested types, where as C hoists\index{type!hoisting} (refactors) nested types into the enclosing scope and has no type qualification. 733 \begin{quote2} 734 \begin{tabular}{@{}l@{\hspace{30pt}}l|l@{}} 735 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{C Type Nesting}} & \multicolumn{1}{c}{\textbf{C Implicit Hoisting}} & \multicolumn{1}{|c}{\textbf{\CFA}} \\ 983 736 \hline 984 737 \begin{lstlisting} … … 1032 785 1033 786 int fred() { 1034 s.t.c = ®S.®R; // type qualification1035 struct ®S.®T t = { ®S.®R, 1, 2 };1036 enum ®S.®C c;1037 union ®S.T.®U u;787 s.t.c = `S.`R; // type qualification 788 struct `S.`T t = { `S.`R, 1, 2 }; 789 enum `S.`C c; 790 union `S.T.`U u; 1038 791 } 1039 792 \end{lstlisting} 1040 793 \end{tabular} 1041 \caption{Type Nesting / Qualification} 1042 \label{f:TypeNestingQualification} 1043 \end{figure} 1044 In the left example in C, types ©C©, ©U© and ©T© are implicitly hoisted outside of type ©S© into the containing block scope. 1045 In the right example in \CFA, the types are not hoisted and accessed using the field-selection operator ``©.©'' for type qualification, as does Java, rather than the \CC type-selection operator ``©::©''. 794 \end{quote2} 795 In the left example in C, types \lstinline@C@, \lstinline@U@ and \lstinline@T@ are implicitly hoisted outside of type \lstinline@S@ into the containing block scope. 796 In the right example in \CFA, the types are not hoisted and accessed using the field-selection operator ``\lstinline@.@'' for type qualification, as does Java, rather than the \CC type-selection operator ``\lstinline@::@''. 1046 797 1047 798 … … 1056 807 which can be used to sort in ascending and descending order by locally redefining the less-than operator into greater-than. 1057 808 \begin{lstlisting} 1058 const unsigned int size = 5;809 const unsigned int size = 10; 1059 810 int ia[size]; 1060 811 ... // assign values to array ia 1061 812 qsort( ia, size ); // sort ascending order using builtin ?<? 1062 813 { 1063 ®int ?<?( int x, int y ) { return x > y; }®// nested routine814 `int ?<?( int x, int y ) { return x > y; }` // nested routine 1064 815 qsort( ia, size ); // sort descending order by local redefinition 1065 816 } … … 1068 819 Nested routines are not first-class, meaning a nested routine cannot be returned if it has references to variables in its enclosing blocks; 1069 820 the only exception is references to the external block of the translation unit, as these variables persist for the duration of the program. 1070 The following program in undefined in \CFA (and ©gcc©\index{gcc})821 The following program in undefined in \CFA (and \lstinline@gcc@\index{gcc}) 1071 822 \begin{lstlisting} 1072 823 [* [int]( int )] foo() { // int (*foo())( int ) 1073 int ®i®= 7;824 int `i` = 7; 1074 825 int bar( int p ) { 1075 ®i®+= 1; // dependent on local variable1076 sout | ®i®| endl;826 `i` += 1; // dependent on local variable 827 sout | `i` | endl; 1077 828 } 1078 829 return bar; // undefined because of local dependence … … 1088 839 1089 840 1090 \section{ Lexical List}841 \section{Tuples} 1091 842 1092 843 In C and \CFA, lists of elements appear in several contexts, such as the parameter list for a routine call. 1093 844 (More contexts are added shortly.) 1094 A list of such elements is called a \newterm{lexical list}.1095 The general syntax of a lexical listis:1096 \begin{lstlisting} 1097 [ §\emph{exprlist}§]1098 \end{lstlisting} 1099 where ©$\emph{exprlist}$©is a list of one or more expressions separated by commas.1100 The brackets, ©[]©, allow differentiating between lexical lists and expressions containing the C comma operator.1101 The following are examples of lexical lists:845 A list of such elements is called a tuple. 846 The general syntax of a tuple is: 847 \begin{lstlisting} 848 [ $\emph{exprlist}$ ] 849 \end{lstlisting} 850 where \lstinline@$\emph{exprlist}$@ is a list of one or more expressions separated by commas. 851 The brackets, \lstinline$[]$, allow differentiating between tuples and expressions containing the C comma operator. 852 The following are examples of tuples: 1102 853 \begin{lstlisting} 1103 854 [ x, y, z ] … … 1105 856 [ v+w, x*y, 3.14159, f() ] 1106 857 \end{lstlisting} 1107 Tuples are permitted to contain sub-tuples (i.e., nesting), such as ©[ [ 14, 21 ], 9 ]©, which is a 2-element tuple whose first element is itself a tuple.858 Tuples are permitted to contain sub-tuples (i.e., nesting), such as \lstinline@[ [ 14, 21 ], 9 ]@, which is a 2-element tuple whose first element is itself a tuple. 1108 859 Note, a tuple is not a record (structure); 1109 860 a record denotes a single value with substructure, whereas a tuple is multiple values with no substructure (see flattening coercion in Section 12.1). … … 1115 866 The general syntax of a tuple type is: 1116 867 \begin{lstlisting} 1117 [ §\emph{typelist}§]1118 \end{lstlisting} 1119 where ©$\emph{typelist}$©is a list of one or more legal \CFA or C type specifications separated by commas, which may include other tuple type specifications.868 [ @\emph{typelist}@ ] 869 \end{lstlisting} 870 where \lstinline@$\emph{typelist}$@ is a list of one or more legal \CFA or C type specifications separated by commas, which may include other tuple type specifications. 1120 871 Examples of tuple types include: 1121 872 \begin{lstlisting} … … 1123 874 [ double, double, double ] 1124 875 [ * int, int * ] // mix of CFA and ANSI 1125 [ * [ 5] int, * * char, * [ [ int, int ] ] (int, int) ]1126 \end{lstlisting} 1127 Like tuples, tuple types may be nested, such as ©[ [ int, int ], int ]©, which is a 2-element tuple type whose first element is itself a tuple type.876 [ * [ 10 ] int, * * char, * [ [ int, int ] ] (int, int) ] 877 \end{lstlisting} 878 Like tuples, tuple types may be nested, such as \lstinline@[ [ int, int ], int ]@, which is a 2-element tuple type whose first element is itself a tuple type. 1128 879 1129 880 Examples of declarations using tuple types are: … … 1161 912 tuple does not have structure like a record; a tuple is simply converted into a list of components. 1162 913 \begin{rationale} 1163 The present implementation of \CFA does not support nested routine calls when the inner routine returns multiple values; i.e., a statement such as ©g( f() )©is not supported.914 The present implementation of \CFA does not support nested routine calls when the inner routine returns multiple values; i.e., a statement such as \lstinline@g( f() )@ is not supported. 1164 915 Using a temporary variable to store the results of the inner routine and then passing this variable to the outer routine works, however. 1165 916 \end{rationale} … … 1190 941 \begin{rationale} 1191 942 Unfortunately, C's syntax for subscripts precluded treating them as tuples. 1192 The C subscript list has the form ©[i][j]...© and not ©[i, j, ...]©.1193 Therefore, there is no syntactic way for a routine returning multiple values to specify the different subscript values, e.g., ©f[g()]©always means a single subscript value because there is only one set of brackets.1194 Fixing this requires a major change to C because the syntactic form ©M[i, j, k]© already has a particular meaning: ©i, j, k©is a comma expression.943 The C subscript list has the form \lstinline@[i][j]...@ and not \lstinline@i, j, ...]@. 944 Therefore, there is no syntactic way for a routine returning multiple values to specify the different subscript values, e.g., \lstinline@f[g()]@ always means a single subscript value because there is only one set of brackets. 945 Fixing this requires a major change to C because the syntactic form \lstinline@M[i, j, k]@ already has a particular meaning: \lstinline@i, j, k@ is a comma expression. 1195 946 \end{rationale} 1196 947 … … 1211 962 [ a, b, c, d ] = w 1212 963 \end{lstlisting} 1213 ©w©is implicitly opened to yield a tuple of four values, which are then assigned individually.964 \lstinline@w@ is implicitly opened to yield a tuple of four values, which are then assigned individually. 1214 965 1215 966 A \newterm{flattening coercion} coerces a nested tuple, i.e., a tuple with one or more components, which are themselves tuples, into a flattened tuple, which is a tuple whose components are not tuples, as in: … … 1219 970 First the right-hand tuple is flattened and then the values are assigned individually. 1220 971 Flattening is also performed on tuple types. 1221 For example, the type ©[ int, [ int, int ], int ]© can be coerced, using flattening, into the type ©[ int, int, int, int ]©.972 For example, the type \lstinline@[ int, [ int, int ], int ]@ can be coerced, using flattening, into the type \lstinline@[ int, int, int, int ]@. 1222 973 1223 974 A \newterm{structuring coercion} is the opposite of flattening; 1224 975 a tuple is structured into a more complex nested tuple. 1225 For example, structuring the tuple ©[ 1, 2, 3, 4 ]© into the tuple ©[ 1, [ 2, 3 ], 4 ]© or the tuple type ©[ int, int, int, int ]© into the tuple type ©[ int, [ int, int ], int ]©.976 For example, structuring the tuple \lstinline@[ 1, 2, 3, 4 ]@ into the tuple \lstinline@[ 1, [ 2, 3 ], 4 ]@ or the tuple type \lstinline@[ int, int, int, int ]@ into the tuple type \lstinline@[ int, [ int, int ], int ]@. 1226 977 In the following example, the last assignment illustrates all the tuple coercions: 1227 978 \begin{lstlisting} … … 1231 982 \end{lstlisting} 1232 983 Starting on the right-hand tuple in the last assignment statement, w is opened, producing a tuple of four values; 1233 therefore, the right-hand tuple is now the tuple ©[ [ 1, 2, 3, 4 ], 5 ]©.1234 This tuple is then flattened, yielding ©[ 1, 2, 3, 4, 5 ]©, which is structured into ©[ 1, [ 2, 3, 4, 5 ] ]©to match the tuple type of the left-hand side.1235 The tuple ©[ 2, 3, 4, 5 ]©is then closed to create a tuple value.1236 Finally, ©x© is assigned ©1© and ©w©is assigned the tuple value using multiple assignment (see Section 14).984 therefore, the right-hand tuple is now the tuple \lstinline@[ [ 1, 2, 3, 4 ], 5 ]@. 985 This tuple is then flattened, yielding \lstinline@[ 1, 2, 3, 4, 5 ]@, which is structured into \lstinline@[ 1, [ 2, 3, 4, 5 ] ]@ to match the tuple type of the left-hand side. 986 The tuple \lstinline@[ 2, 3, 4, 5 ]@ is then closed to create a tuple value. 987 Finally, \lstinline@x@ is assigned \lstinline@1@ and \lstinline@w@ is assigned the tuple value using multiple assignment (see Section 14). 1237 988 \begin{rationale} 1238 989 A possible additional language extension is to use the structuring coercion for tuples to initialize a complex record with a tuple. … … 1245 996 Mass assignment has the following form: 1246 997 \begin{lstlisting} 1247 [ §\emph{lvalue}§, ..., §\emph{lvalue}§ ] = §\emph{expr}§;1248 \end{lstlisting} 1249 The left-hand side is a tuple of \ emph{lvalues}, which is a list of expressions each yielding an address, i.e., any data object that can appear on the left-hand side of a conventional assignment statement.1250 ©$\emph{expr}$©is any standard arithmetic expression.998 [ @\emph{lvalue}@, ..., @\emph{lvalue}@ ] = @\emph{expr}@; 999 \end{lstlisting} 1000 The left-hand side is a tuple of \lstinline@$\emph{lvalues}$@, which is a list of expressions each yielding an address, i.e., any data object that can appear on the left-hand side of a conventional assignment statement. 1001 \lstinline@$\emph{expr}$@ is any standard arithmetic expression. 1251 1002 Clearly, the types of the entities being assigned must be type compatible with the value of the expression. 1252 1003 … … 1274 1025 *a1 = t; *a2 = t; *a3 = t; 1275 1026 \end{lstlisting} 1276 The temporary ©t©is necessary to store the value of the expression to eliminate conversion issues.1027 The temporary \lstinline@t@ is necessary to store the value of the expression to eliminate conversion issues. 1277 1028 The temporaries for the addresses are needed so that locations on the left-hand side do not change as the values are assigned. 1278 In this case, ©y[i]© uses the previous value of ©i©and not the new value set at the beginning of the mass assignment.1029 In this case, \lstinline@y[i]@ uses the previous value of \lstinline@i@ and not the new value set at the beginning of the mass assignment. 1279 1030 1280 1031 … … 1284 1035 Multiple assignment has the following form: 1285 1036 \begin{lstlisting} 1286 [ §\emph{lvalue}§, . . ., §\emph{lvalue}§ ] = [ §\emph{expr}§, . . ., §\emph{expr}§];1287 \end{lstlisting} 1288 The left-hand side is a tuple of \ emph{lvalues}, and the right-hand side is a tuple of \emph{expr}s.1289 Each \ emph{expr} appearing on the righthand side of a multiple assignment statement is assigned to the corresponding \emph{lvalues}on the left-hand side of the statement using parallel semantics for each assignment.1037 [ @\emph{lvalue}@, . . ., @\emph{lvalue}@ ] = [ @\emph{expr}@, . . ., @\emph{expr}@ ]; 1038 \end{lstlisting} 1039 The left-hand side is a tuple of \lstinline@$\emph{lvalues}$@, and the right-hand side is a tuple of \lstinline@$\emph{expr}$@s. 1040 Each \lstinline@$\emph{expr}$@ appearing on the righthand side of a multiple assignment statement is assigned to the corresponding \lstinline@$\emph{lvalues}$@ on the left-hand side of the statement using parallel semantics for each assignment. 1290 1041 An example of multiple assignment is: 1291 1042 \begin{lstlisting} 1292 1043 [ x, y, z ] = [ 1, 2, 3 ]; 1293 1044 \end{lstlisting} 1294 Here, the values ©1©, ©2© and ©3© are assigned, respectively, to the variables ©x©, ©y© and ©z©.1045 Here, the values \lstinline@1@, \lstinline@2@ and \lstinline@3@ are assigned, respectively, to the variables \lstinline@x@, \lstinline@y@ and \lstinline@z@. 1295 1046 A more complex example is: 1296 1047 \begin{lstlisting} 1297 1048 [ i, y[ i ], z ] = [ 1, i, a + b ]; 1298 1049 \end{lstlisting} 1299 Here, the values ©1©, ©i© and ©a + b© are assigned to the variables ©i©, ©y[i]© and ©z©, respectively.1050 Here, the values \lstinline@1@, \lstinline@i@ and \lstinline@a + b@ are assigned to the variables \lstinline@i@, \lstinline@y[i]@ and \lstinline@z@, respectively. 1300 1051 Note, the parallel semantics of 1301 1052 multiple assignment ensures: … … 1303 1054 [ x, y ] = [ y, x ]; 1304 1055 \end{lstlisting} 1305 correctly interchanges (swaps) the values stored in ©x© and ©y©.1056 correctly interchanges (swaps) the values stored in \lstinline@x@ and \lstinline@y@. 1306 1057 The following cases are errors: 1307 1058 \begin{lstlisting} … … 1324 1075 Cascade assignment has the following form: 1325 1076 \begin{lstlisting} 1326 §\emph{tuple}§ = §\emph{tuple}§ = ... = §\emph{tuple}§;1077 @\emph{tuple}@ = @\emph{tuple}@ = ... = @\emph{tuple}@; 1327 1078 \end{lstlisting} 1328 1079 and it has the same parallel semantics as for mass and multiple assignment. … … 1342 1093 Its general form is: 1343 1094 \begin{lstlisting} 1344 §\emph{expr}§ . [ §\emph{fieldlist}§]1345 §\emph{expr}§ -> [ §\emph{fieldlist}§]1346 \end{lstlisting} 1347 \ emph{expr} is any expression yielding a value of type record, e.g., ©struct©, ©union©.1348 Each element of \ emph{ fieldlist} is an element of the record specified by \emph{expr}.1095 @\emph{expr}@ . [ @\emph{fieldlist}@ ] 1096 @\emph{expr}@ -> [ @\emph{fieldlist}@ ] 1097 \end{lstlisting} 1098 \lstinline@$\emph{expr}$@ is any expression yielding a value of type record, e.g., \lstinline@struct@, \lstinline@union@. 1099 Each element of \lstinline@$\emph{ fieldlist}$@ is an element of the record specified by \lstinline@$\emph{expr}$@. 1349 1100 A record-field tuple may be used anywhere a tuple can be used. An example of the use of a record-field tuple is 1350 1101 the following: … … 1361 1112 also, it is unnecessary to specify all the fields of a struct in a multiple record-field tuple. 1362 1113 1363 If a field of a ©struct© is itself another ©struct©, multiple fields of this subrecord can be specified using a nested record-field tuple, as in the following example:1114 If a field of a \lstinline@struct@ is itself another \lstinline@struct@, multiple fields of this subrecord can be specified using a nested record-field tuple, as in the following example: 1364 1115 \begin{lstlisting} 1365 1116 struct inner { … … 1378 1129 \section{Labelled Break/Continue} 1379 1130 1380 While C provides ©break© and ©continue© statements for altering control flow, both are restricted to one level of nesting for a particular control structure. 1381 Unfortunately, this restriction forces programmers to use ©goto© to achieve the equivalent for more than one level of nesting. 1382 To prevent having to make this switch, the ©break© and ©continue© are extended with a target label to support static multi-level exit~\cite{Buhr85,Java}. 1383 \VRef[Figure]{f:LabelledBreak} shows the labelled ©break©, and the target control structure of the exit. 1384 The inner most loop has three exit points, which cause termination of one or more of the three nested loops, respectively. 1385 \VRef[Figure]{f:LabelledContinue} shows the labelled ©continue©, and which control structure is the target of the next loop iteration. 1386 The inner most loop has three restart points, which cause the next loop iteration to begin, respectively. 1387 1388 \begin{figure} 1389 \centering 1390 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 1391 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 1392 \begin{lstlisting} 1393 ®L1:® for ( ... ) { 1394 ®L2:® for ( ... ) { 1395 ®L3:® for ( ... ) { 1396 ... break ®L1®; ... 1397 ... break ®L2®; ... 1398 ... break ®L3®; // or break 1131 While C provides \lstinline@break@ and \lstinline@continue@ statements for altering control flow, both are restricted to one level of nesting for a particular control structure. 1132 Unfortunately, this restriction forces programmers to use \lstinline@goto@ to achieve the equivalent for more than one level of nesting. 1133 To prevent having to make this switch, the \lstinline@break@ and \lstinline@continue@ are extended with a target label to support static multi-level exit~\cite{Buhr85,Java}. 1134 For the labelled \lstinline@break@, it is possible to specify which control structure is the target for exit, as in: 1135 \begin{quote2} 1136 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 1137 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 1138 \begin{lstlisting} 1139 `L1:` for ( ... ) { 1140 `L2:` for ( ... ) { 1141 `L3:` for ( ... ) { 1142 ... break `L1`; ... 1143 ... break `L2`; ... 1144 ... break `L3`; // or break 1399 1145 } 1400 1146 } … … 1408 1154 ... goto L1; ... 1409 1155 ... goto L2; ... 1410 ... goto L3; // or break 1156 ... goto L3; // or break 1411 1157 } L3: ; 1412 1158 } L2: ; … … 1414 1160 \end{lstlisting} 1415 1161 \end{tabular} 1416 \caption{Labelled Break} 1417 \label{f:LabelledBreak} 1418 1419 \vspace*{0.25in} 1420 1421 \begin{tabular}{@{}l@{\hspace{3em}}l@{}} 1422 \multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 1423 \begin{lstlisting} 1424 ®L1®: for ( ... ) { 1425 ®L2®: for ( ... ) { 1426 ®L3®: for ( ... ) { 1427 ... continue ®L1®; ... 1428 ... continue ®L2®; ... 1429 ... continue ®L3®; // or continue 1162 \end{quote2} 1163 The inner most loop has three exit points, which cause termination of one or more of the three nested loops, respectively. 1164 For the labelled \lstinline@continue@, it is possible to specify which control structure is the target for the next loop iteration, as in: 1165 \begin{quote2} 1166 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 1167 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} \\ 1168 \begin{lstlisting} 1169 `L1`: for ( ... ) { 1170 `L2`: for ( ... ) { 1171 `L3`: for ( ... ) { 1172 ... continue `L1`; ... 1173 ... continue `L2`; ... 1174 ... continue `L3`; ... 1430 1175 1431 1176 } … … 1442 1187 ... goto L1; ... 1443 1188 ... goto L2; ... 1444 ... goto L3; // or continue1189 ... goto L3; ... 1445 1190 L3: ; 1446 1191 } … … 1451 1196 \end{lstlisting} 1452 1197 \end{tabular} 1453 \caption{Labelled Continue} 1454 \label{f:LabelledContinue} 1455 \end{figure} 1456 1457 For both ©break© and ©continue©, the target label must be directly associated with a ©for©, ©while© or ©do© statement; 1458 for ©break©, the target label can also be associated with a ©switch© statement. 1459 Both ©break© and ©continue© with target labels are simply a ©goto© restricted in the following ways: 1198 \end{quote2} 1199 The inner most loop has three restart points, which cause the next loop iteration to begin, respectively. 1200 For both \lstinline@break@ and \lstinline@continue@, the target label must be directly associated with a \lstinline@for@, \lstinline@while@ or \lstinline@do@ statement; 1201 for \lstinline@break@, the target label can also be associated with a \lstinline@switch@ statement. 1202 Both \lstinline@break@ and \lstinline@continue@ with target labels are simply a \lstinline@goto@ restricted in the following ways: 1460 1203 \begin{itemize} 1461 1204 \item … … 1466 1209 Since they always transfers out of containing control structures, they cannot be used to branch into a control structure. 1467 1210 \end{itemize} 1468 The advantage of the labelled ©break©/©continue© is that it allows static multi-level exits without having to use the ©goto©statement and ties control flow to the target control structure rather than an arbitrary point in a program.1211 The advantage of the labelled \lstinline@break@/\lstinline@continue@ is that it allows static multi-level exits without having to use the \lstinline@goto@ statement and ties control flow to the target control structure rather than an arbitrary point in a program. 1469 1212 Furthermore, the location of the label at the beginning of the target control structure informs the reader that complex control-flow is occurring in the body of the control structure. 1470 With ©goto©, the label at the end of the control structure fails to convey this important clue early enough to the reader.1213 With \lstinline@goto@, the label at the end of the control structure fails to convey this important clue early enough to the reader. 1471 1214 Finally, using an explicit target for the transfer instead of an implicit target allows new nested loop or switch constructs to be added or removed without affecting other constructs. 1472 The implicit targets of the current ©break© and ©continue©, i.e., the closest enclosing loop or ©switch©, change as certain constructs are added or removed.1215 The implicit targets of the current \lstinline@break@ and \lstinline@continue@, i.e., the closest enclosing loop or \lstinline@switch@, change as certain constructs are added or removed. 1473 1216 1474 1217 1475 1218 \section{Switch Statement} 1476 1219 1477 C allows a number of questionable forms for the ©switch©statement:1220 C allows a number of questionable forms for the \lstinline@switch@ statement: 1478 1221 \begin{enumerate} 1479 1222 \item 1480 By default, the end of a ©case©clause\footnote{1481 In this section, the term \emph{case clause} refers to either a ©case© or ©default©clause.}1482 \emph{falls through} to the next ©case© clause in the ©switch©statement;1483 to exit a ©switch© statement from a ©case© clause requires explicitly terminating the clause with a transfer statement, most commonly ©break©, as in:1223 By default, the end of a \lstinline@case@ clause\footnote{ 1224 In this section, the term \emph{case clause} refers to either a \lstinline@case@ or \lstinline@default@ clause.} 1225 \emph{falls through} to the next \lstinline@case@ clause in the \lstinline@switch@ statement; 1226 to exit a \lstinline@switch@ statement from a \lstinline@case@ clause requires explicitly terminating the clause with a transfer statement, most commonly \lstinline@break@, as in: 1484 1227 \begin{lstlisting} 1485 1228 switch ( i ) { … … 1506 1249 \end{lstlisting} 1507 1250 In this example, case 2 is always done if case 3 is done. 1508 This control flow is difficult to simulate with if statements or a ©switch©statement without fall-through as code must be duplicated or placed in a separate routine.1251 This control flow is difficult to simulate with if statements or a \lstinline@switch@ statement without fall-through as code must be duplicated or placed in a separate routine. 1509 1252 C also uses fall-through to handle multiple case-values resulting in the same action, as in: 1510 1253 \begin{lstlisting} … … 1519 1262 \end{lstlisting} 1520 1263 However, this situation is handled in other languages without fall-through by allowing a list of case values. 1521 While fall-through itself is not a problem, the problem occurs when fall-through is the ©default©, as this semantics is not intuitive to most programmers and is different from virtually all other programming languages with a ©switch©statement.1522 Hence, ©default© fall-through semantics results in a large number of programming errors as programmers often forget the ©break© statement at the end of a ©case©clause, resulting in inadvertent fall-through.1523 1524 \item 1525 It is possible to place ©case© clauses on statements nested \emph{within} the body of the ©switch©statement, as in:1264 While fall-through itself is not a problem, the problem occurs when fall-through is the \lstinline@default@, as this semantics is not intuitive to most programmers and is different from virtually all other programming languages with a \lstinline@switch@ statement. 1265 Hence, \lstinline@default@ fall-through semantics results in a large number of programming errors as programmers often forget the \lstinline@break@ statement at the end of a \lstinline@case@ clause, resulting in inadvertent fall-through. 1266 1267 \item 1268 It is possible to place \lstinline@case@ clauses on statements nested \emph{within} the body of the \lstinline@switch@ statement, as in: 1526 1269 \begin{lstlisting} 1527 1270 switch ( i ) { … … 1564 1307 } 1565 1308 \end{lstlisting} 1566 which unrolls a loop N times (N = 8 above) and uses the ©switch©statement to deal with any iterations not a multiple of N.1309 which unrolls a loop N times (N = 8 above) and uses the \lstinline@switch@ statement to deal with any iterations not a multiple of N. 1567 1310 While efficient, this sort of special purpose usage is questionable: 1568 1311 \begin{quote} … … 1571 1314 \end{quote} 1572 1315 \item 1573 It is possible to place the ©default© clause anywhere in the list of labelled clauses for a ©switch©statement, rather than only at the end.1574 Virtually all programming languages with a ©switch© statement require the ©default©clause to appear last in the case-clause list.1575 The logic for this semantics is that after checking all the ©case© clauses without success, the ©default©clause is selected;1576 hence, physically placing the ©default© clause at the end of the ©case©clause list matches with this semantics.1577 This physical placement can be compared to the physical placement of an ©else© clause at the end of a series of connected ©if©/©else©statements.1578 1579 \item 1580 It is possible to place unreachable code at the start of a ©switch©statement, as in:1316 It is possible to place the \lstinline@default@ clause anywhere in the list of labelled clauses for a \lstinline@switch@ statement, rather than only at the end. 1317 Virtually all programming languages with a \lstinline@switch@ statement require the \lstinline@default@ clause to appear last in the case-clause list. 1318 The logic for this semantics is that after checking all the \lstinline@case@ clauses without success, the \lstinline@default@ clause is selected; 1319 hence, physically placing the \lstinline@default@ clause at the end of the \lstinline@case@ clause list matches with this semantics. 1320 This physical placement can be compared to the physical placement of an \lstinline@else@ clause at the end of a series of connected \lstinline@if@/\lstinline@else@ statements. 1321 1322 \item 1323 It is possible to place unreachable code at the start of a \lstinline@switch@ statement, as in: 1581 1324 \begin{lstlisting} 1582 1325 switch ( x ) { … … 1588 1331 } 1589 1332 \end{lstlisting} 1590 While the declaration of the local variable ©y© is useful and its scope is across all ©case©clauses, the initialization for such a variable is defined to never be executed because control always transfers over it.1591 Furthermore, any statements before the first ©case© clause can only be executed if labelled and transfered to using a ©goto©, either from outside or inside of the ©switch©.1333 While the declaration of the local variable \lstinline@y@ is useful and its scope is across all \lstinline@case@ clauses, the initialization for such a variable is defined to never be executed because control always transfers over it. 1334 Furthermore, any statements before the first \lstinline@case@ clause can only be executed if labelled and transfered to using a \lstinline@goto@, either from outside or inside of the \lstinline@switch@. 1592 1335 As mentioned, transfer into control structures should be forbidden. 1593 Transfers from within the ©switch© body using a ©goto©are equally unpalatable.1336 Transfers from within the \lstinline@switch@ body using a \lstinline@goto@ are equally unpalatable. 1594 1337 \end{enumerate} 1595 1338 Before discussing potential language changes to deal with these problems, it is worth observing that in a typical C program: 1596 1339 \begin{itemize} 1597 1340 \item 1598 the number of ©switch©statements is small,1599 \item 1600 most ©switch©statements are well formed (i.e., no Duff's device),1601 \item 1602 the ©default©clause is usually written as the last case-clause,1603 \item 1604 and there is only a medium amount of fall-through from one ©case©clause to the next, and most of these result from a list of case values executing common code, rather than a sequence of case actions that compound.1341 the number of \lstinline@switch@ statements is small, 1342 \item 1343 most \lstinline@switch@ statements are well formed (i.e., no Duff's device), 1344 \item 1345 the \lstinline@default@ clause is usually written as the last case-clause, 1346 \item 1347 and there is only a medium amount of fall-through from one \lstinline@case@ clause to the next, and most of these result from a list of case values executing common code, rather than a sequence of case actions that compound. 1605 1348 \end{itemize} 1606 1349 These observations should help to put the effects of suggested changes into perspective. … … 1608 1351 \begin{enumerate} 1609 1352 \item 1610 Eliminating the ©default©fall-through problem has the greatest potential for affecting existing code.1611 However, even if fall-through is removed, most ©switch© statements would continue to work because of the explicit transfers already present at the end of each ©case© clause, and the common placement of the ©default©clause at the end of the case list.1612 In addition, the above grammar provides for the most common use of fall-through, i.e., a list of ©case©clauses executing common code, e.g.:1353 Eliminating the \lstinline@default@ fall-through problem has the greatest potential for affecting existing code. 1354 However, even if fall-through is removed, most \lstinline@switch@ statements would continue to work because of the explicit transfers already present at the end of each \lstinline@case@ clause, and the common placement of the \lstinline@default@ clause at the end of the case list. 1355 In addition, the above grammar provides for the most common use of fall-through, i.e., a list of \lstinline@case@ clauses executing common code, e.g.: 1613 1356 \begin{lstlisting} 1614 1357 case 1: case 2: case 3: ... 1615 1358 \end{lstlisting} 1616 1359 Nevertheless, reversing the default action would have a non-trivial effect on case actions that compound, such as the above example of processing shell arguments. 1617 Therefore, to preserve backwards compatibility, it is necessary to introduce a new kind of ©switch© statement, called ©choose©, with no fall-through semantics.1618 The ©choose© statement is identical to the new ©switch© statement, except there is no implicit fall-through between case-clauses and the ©break© statement applies to the enclosing loop construct (as for the continue statement in a ©switch©statement).1360 Therefore, to preserve backwards compatibility, it is necessary to introduce a new kind of \lstinline@switch@ statement, called \lstinline@choose@, with no fall-through semantics. 1361 The \lstinline@choose@ statement is identical to the new \lstinline@switch@ statement, except there is no implicit fall-through between case-clauses and the \lstinline@break@ statement applies to the enclosing loop construct (as for the continue statement in a \lstinline@switch@ statement). 1619 1362 It is still possible to fall-through if a case-clause ends with the new keyword fallthru, e.g.: 1620 1363 \begin{lstlisting} … … 1632 1375 \item 1633 1376 Eliminating Duff's device is straightforward and only invalidates a small amount of very questionable code. 1634 The solution is to allow ©case© clauses to only appear at the same nesting level as the ©switch© body, as is done in most other programming languages with ©switch©statements.1635 \item 1636 The issue of ©default© at locations other than at the end of the cause clause can be solved by using good programming style, and there are a few reasonable situations involving fall-through where the ©default©clause may appear is locations other than at the end.1377 The solution is to allow \lstinline@case@ clauses to only appear at the same nesting level as the \lstinline@switch@ body, as is done in most other programming languages with \lstinline@switch@ statements. 1378 \item 1379 The issue of \lstinline@default@ at locations other than at the end of the cause clause can be solved by using good programming style, and there are a few reasonable situations involving fall-through where the \lstinline@default@ clause may appear is locations other than at the end. 1637 1380 Therefore, no language change is made for this issue. 1638 1381 \item 1639 Dealing with unreachable code at the start of a ©switch© statement is solved by defining the declaration-list, including any associated initialization, at the start of a ©switch© statement body to be executed before the transfer to the appropriate ©case©clause.1382 Dealing with unreachable code at the start of a \lstinline@switch@ statement is solved by defining the declaration-list, including any associated initialization, at the start of a \lstinline@switch@ statement body to be executed before the transfer to the appropriate \lstinline@case@ clause. 1640 1383 This semantics is the same as for declarations at the start of a loop body, which are executed before each iteration of the loop body. 1641 As well, this grammar does not allow statements to appear before the first ©case©clause.1384 As well, this grammar does not allow statements to appear before the first \lstinline@case@ clause. 1642 1385 The change is compatible for declarations with initialization in this context because existing code cannot assume the initialization has occurred. 1643 1386 The change is incompatible for statements, but any existing code using it is highly questionable, as in: … … 1649 1392 } 1650 1393 \end{lstlisting} 1651 The statement after the ©switch©can never be executed unless it is labelled.1652 If it is labelled, it must be transfered to from outside or inside the ©switch©statement, neither of which is acceptable control flow.1394 The statement after the \lstinline@switch@ can never be executed unless it is labelled. 1395 If it is labelled, it must be transfered to from outside or inside the \lstinline@switch@ statement, neither of which is acceptable control flow. 1653 1396 \end{enumerate} 1654 1397 … … 1656 1399 \section{Case Clause} 1657 1400 1658 C restricts the ©case© clause of a ©switch©statement to a single value.1659 For multiple ©case© clauses associated with the same statement, it is necessary to have multiple ©case©clauses rather than multiple values.1660 Requiring a ©case©clause for each value does not seem to be in the spirit of brevity normally associated with C.1661 Therefore, the ©case©clause is extended with a list of values, as in:1401 C restricts the \lstinline@case@ clause of a \lstinline@switch@ statement to a single value. 1402 For multiple \lstinline@case@ clauses associated with the same statement, it is necessary to have multiple \lstinline@case@ clauses rather than multiple values. 1403 Requiring a \lstinline@case@ clause for each value does not seem to be in the spirit of brevity normally associated with C. 1404 Therefore, the \lstinline@case@ clause is extended with a list of values, as in: 1662 1405 \begin{quote2} 1663 \begin{tabular}{@{}l@{\hspace{3 em}}l@{\hspace{2em}}l@{}}1664 \multicolumn{1}{c@{\hspace{3 em}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{2em}}}{\textbf{C}} \\1406 \begin{tabular}{@{}l@{\hspace{30pt}}l@{\hspace{20pt}}l@{}} 1407 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{20pt}}}{\textbf{C}} \\ 1665 1408 \begin{lstlisting} 1666 1409 switch ( i ) { 1667 ®case 1, 3, 5®:1410 `case 1, 3, 5`: 1668 1411 ... 1669 ®case 2, 4, 6®:1412 `case 2, 4, 6`: 1670 1413 ... 1671 1414 } … … 1693 1436 In addition, two forms of subranges are allowed to specify case values: the GNU C form and a new \CFA form. 1694 1437 \begin{quote2} 1695 \begin{tabular}{@{}l@{\hspace{3 em}}l@{\hspace{2em}}l@{}}1696 \multicolumn{1}{c@{\hspace{3 em}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{2em}}}{\textbf{GNU C}} \\1438 \begin{tabular}{@{}l@{\hspace{30pt}}l@{\hspace{20pt}}l@{}} 1439 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c@{\hspace{20pt}}}{\textbf{GNU C}} \\ 1697 1440 \begin{lstlisting} 1698 1441 switch ( i ) { 1699 ®case 1~5:®1442 `case 1~5:` 1700 1443 ... 1701 ®case 10~15:®1444 `case 10~15:` 1702 1445 ... 1703 1446 } … … 1954 1697 1955 1698 The syntax for using references in \CFA is the same as \CC with the exception of reference initialization. 1956 Use ©&©to specify a reference, and access references just like regular objects, not like pointers (use dot notation to access fields).1699 Use \lstinline@&@ to specify a reference, and access references just like regular objects, not like pointers (use dot notation to access fields). 1957 1700 When initializing a reference, \CFA uses a different syntax which differentiates reference initialization from assignment to a reference. 1958 The ©&©is used on both sides of the expression to clarify that the address of the reference is being set to the address of the variable to which it refers.1701 The \lstinline@&@ is used on both sides of the expression to clarify that the address of the reference is being set to the address of the variable to which it refers. 1959 1702 1960 1703 \begin{figure} … … 2029 1772 In \CFA, as in C, all scalar types can be incremented and 2030 1773 decremented, which is defined in terms of adding or subtracting 1. 2031 The operations ©&&©, ©||©, and ©!© can be applied to any scalar arguments and are defined in terms of comparison against 0 (ex. ©(a && b)© becomes ©(a != 0 && b != 0)©).1774 The operations \lstinline@&&@, \lstinline@||@, and \lstinline@!@ can be applied to any scalar arguments and are defined in terms of comparison against 0 (ex. \lstinline@(a && b)@ becomes \lstinline@(a != 0 && b != 0)@). 2032 1775 2033 1776 In C, the integer constants 0 and 1 suffice because the integer promotion rules can convert them to any … … 2038 1781 polymorphic parameters, and user-defined pointer-like types may need a null value. 2039 1782 Defining special 2040 constants for a user-defined type is more efficient than defining a conversion to the type from ©_Bool©.1783 constants for a user-defined type is more efficient than defining a conversion to the type from \lstinline@_Bool@. 2041 1784 2042 1785 Why just 0 and 1? Why not other integers? No other integers have special status in C. … … 2121 1864 \begin{tabular}[t]{ll} 2122 1865 %identifier & operation \\ \hline 2123 ©?[?]©& subscripting \impl{?[?]}\\2124 ©?()©& function call \impl{?()}\\2125 ©?++©& postfix increment \impl{?++}\\2126 ©?--©& postfix decrement \impl{?--}\\2127 ©++?©& prefix increment \impl{++?}\\2128 ©--?©& prefix decrement \impl{--?}\\2129 ©*?©& dereference \impl{*?}\\2130 ©+?©& unary plus \impl{+?}\\2131 ©-?©& arithmetic negation \impl{-?}\\2132 ©~?©& bitwise negation \impl{~?}\\2133 ©!?©& logical complement \impl{"!?}\\2134 ©?*?©& multiplication \impl{?*?}\\2135 ©?/?©& division \impl{?/?}\\1866 \lstinline@?[?]@ & subscripting \impl{?[?]}\\ 1867 \lstinline@?()@ & function call \impl{?()}\\ 1868 \lstinline@?++@ & postfix increment \impl{?++}\\ 1869 \lstinline@?--@ & postfix decrement \impl{?--}\\ 1870 \lstinline@++?@ & prefix increment \impl{++?}\\ 1871 \lstinline@--?@ & prefix decrement \impl{--?}\\ 1872 \lstinline@*?@ & dereference \impl{*?}\\ 1873 \lstinline@+?@ & unary plus \impl{+?}\\ 1874 \lstinline@-?@ & arithmetic negation \impl{-?}\\ 1875 \lstinline@~?@ & bitwise negation \impl{~?}\\ 1876 \lstinline@!?@ & logical complement \impl{"!?}\\ 1877 \lstinline@?*?@ & multiplication \impl{?*?}\\ 1878 \lstinline@?/?@ & division \impl{?/?}\\ 2136 1879 \end{tabular}\hfil 2137 1880 \begin{tabular}[t]{ll} 2138 1881 %identifier & operation \\ \hline 2139 ©?%?©& remainder \impl{?%?}\\2140 ©?+?©& addition \impl{?+?}\\2141 ©?-?©& subtraction \impl{?-?}\\2142 ©?<<?©& left shift \impl{?<<?}\\2143 ©?>>?©& right shift \impl{?>>?}\\2144 ©?<?©& less than \impl{?<?}\\2145 ©?<=?©& less than or equal \impl{?<=?}\\2146 ©?>=?©& greater than or equal \impl{?>=?}\\2147 ©?>?©& greater than \impl{?>?}\\2148 ©?==?©& equality \impl{?==?}\\2149 ©?!=?©& inequality \impl{?"!=?}\\2150 ©?&?©& bitwise AND \impl{?&?}\\1882 \lstinline@?%?@ & remainder \impl{?%?}\\ 1883 \lstinline@?+?@ & addition \impl{?+?}\\ 1884 \lstinline@?-?@ & subtraction \impl{?-?}\\ 1885 \lstinline@?<<?@ & left shift \impl{?<<?}\\ 1886 \lstinline@?>>?@ & right shift \impl{?>>?}\\ 1887 \lstinline@?<?@ & less than \impl{?<?}\\ 1888 \lstinline@?<=?@ & less than or equal \impl{?<=?}\\ 1889 \lstinline@?>=?@ & greater than or equal \impl{?>=?}\\ 1890 \lstinline@?>?@ & greater than \impl{?>?}\\ 1891 \lstinline@?==?@ & equality \impl{?==?}\\ 1892 \lstinline@?!=?@ & inequality \impl{?"!=?}\\ 1893 \lstinline@?&?@ & bitwise AND \impl{?&?}\\ 2151 1894 \end{tabular}\hfil 2152 1895 \begin{tabular}[t]{ll} 2153 1896 %identifier & operation \\ \hline 2154 ©?^?©& exclusive OR \impl{?^?}\\2155 ©?|?©& inclusive OR \impl{?"|?}\\2156 ©?=?©& simple assignment \impl{?=?}\\2157 ©?*=?©& multiplication assignment \impl{?*=?}\\2158 ©?/=?©& division assignment \impl{?/=?}\\2159 ©?%=?©& remainder assignment \impl{?%=?}\\2160 ©?+=?©& addition assignment \impl{?+=?}\\2161 ©?-=?©& subtraction assignment \impl{?-=?}\\2162 ©?<<=?©& left-shift assignment \impl{?<<=?}\\2163 ©?>>=?©& right-shift assignment \impl{?>>=?}\\2164 ©?&=?©& bitwise AND assignment \impl{?&=?}\\2165 ©?^=?©& exclusive OR assignment \impl{?^=?}\\2166 ©?|=?©& inclusive OR assignment \impl{?"|=?}\\1897 \lstinline@?^?@ & exclusive OR \impl{?^?}\\ 1898 \lstinline@?|?@ & inclusive OR \impl{?"|?}\\ 1899 \lstinline@?=?@ & simple assignment \impl{?=?}\\ 1900 \lstinline@?*=?@ & multiplication assignment \impl{?*=?}\\ 1901 \lstinline@?/=?@ & division assignment \impl{?/=?}\\ 1902 \lstinline@?%=?@ & remainder assignment \impl{?%=?}\\ 1903 \lstinline@?+=?@ & addition assignment \impl{?+=?}\\ 1904 \lstinline@?-=?@ & subtraction assignment \impl{?-=?}\\ 1905 \lstinline@?<<=?@ & left-shift assignment \impl{?<<=?}\\ 1906 \lstinline@?>>=?@ & right-shift assignment \impl{?>>=?}\\ 1907 \lstinline@?&=?@ & bitwise AND assignment \impl{?&=?}\\ 1908 \lstinline@?^=?@ & exclusive OR assignment \impl{?^=?}\\ 1909 \lstinline@?|=?@ & inclusive OR assignment \impl{?"|=?}\\ 2167 1910 \end{tabular} 2168 1911 \hfil … … 2173 1916 These identifiers are defined such that the question marks in the name identify the location of the operands. 2174 1917 These operands represent the parameters to the functions, and define how the operands are mapped to the function call. 2175 For example, ©a + b© becomes ©?+?(a, b)©.1918 For example, \lstinline@a + b@ becomes \lstinline@?+?(a, b)@. 2176 1919 2177 1920 In the example below, a new type, myComplex, is defined with an overloaded constructor, + operator, and string operator. … … 2215 1958 Auto type-inferencing occurs in a declaration where a variable's type is inferred from its initialization expression type. 2216 1959 \begin{quote2} 2217 \begin{tabular}{@{}l@{\hspace{3 em}}ll@{}}2218 \multicolumn{1}{c@{\hspace{3 em}}}{\textbf{\CC}} & \multicolumn{1}{c}{©gcc©}\index{gcc} \\1960 \begin{tabular}{@{}l@{\hspace{30pt}}ll@{}} 1961 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CC}} & \multicolumn{1}{c}{\lstinline@gcc@}\index{gcc} \\ 2219 1962 \begin{lstlisting} 2220 1963 … … 2247 1990 \end{itemize} 2248 1991 2249 In \CFA, ©typedef©provides a mechanism to alias long type names with short ones, both globally and locally, but not eliminate the use of the short name.2250 ©gcc© provides ©typeof©to declare a secondary variable from a primary variable.1992 In \CFA, \lstinline@typedef@ provides a mechanism to alias long type names with short ones, both globally and locally, but not eliminate the use of the short name. 1993 \lstinline@gcc@ provides \lstinline@typeof@ to declare a secondary variable from a primary variable. 2251 1994 \CFA also relies heavily on the specification of the left-hand side of assignment for type inferencing, so in many cases it is crucial to specify the type of the left-hand side to select the correct type of the right-hand expression. 2252 1995 Only for overloaded routines with the same return type is variable type-inferencing possible. 2253 Finally, ©auto©presents the programming problem of tracking down a type when the type is actually needed.1996 Finally, \lstinline@auto@ presents the programming problem of tracking down a type when the type is actually needed. 2254 1997 For example, given 2255 1998 \begin{lstlisting} 2256 auto j = ®...®2257 \end{lstlisting} 2258 and the need to write a routine to compute using ©j©2259 \begin{lstlisting} 2260 void rtn( ®...®parm );1999 auto j = `...` 2000 \end{lstlisting} 2001 and the need to write a routine to compute using \lstinline@j@ 2002 \begin{lstlisting} 2003 void rtn( `...` parm ); 2261 2004 rtn( j ); 2262 2005 \end{lstlisting} 2263 A programmer must work backwards to determine the type of ©j©'s initialization expression, reconstructing the possibly long generic type-name.2006 A programmer must work backwards to determine the type of \lstinline@j@'s initialization expression, reconstructing the possibly long generic type-name. 2264 2007 In this situation, having the type name or a short alias is very useful. 2265 2008 … … 2269 2012 At some point, a programmer wants the type of the variable to remain constant and the expression to be in error when it changes. 2270 2013 2271 Given ©typedef© and ©typeof©in \CFA, and the strong need to use the type of left-hand side in inferencing, auto type-inferencing is not supported at this time.2014 Given \lstinline@typedef@ and \lstinline@typeof@ in \CFA, and the strong need to use the type of left-hand side in inferencing, auto type-inferencing is not supported at this time. 2272 2015 Should a significant need arise, this feature can be revisited. 2273 2016 … … 2473 2216 2474 2217 try { 2475 throw 13;2218 throw 13; 2476 2219 } 2477 2220 catch(int e) { 2478 printf(.caught an exception: %d\n., e);2221 printf(.caught an exception: %d\n., e); 2479 2222 } 2480 2223 \end{lstlisting} … … 2571 2314 } s; 2572 2315 \end{lstlisting} 2573 The problem occurs in accesing these fields using the selection operation `` ©.©'':2316 The problem occurs in accesing these fields using the selection operation ``\lstinline@.@'': 2574 2317 \begin{lstlisting} 2575 2318 s.0 = 0; // ambiguity with floating constant .0 … … 2578 2321 To make this work, a space is required after the field selection: 2579 2322 \begin{lstlisting} 2580 ®s.§\textvisiblespace§0®= 0;2581 ®s.§\textvisiblespace§1®= 1;2323 `s.@\textvisiblespace@0` = 0; 2324 `s.@\textvisiblespace@1` = 1; 2582 2325 \end{lstlisting} 2583 2326 While this sytact is awkward, it is unlikely many programers will name fields of a structure 0 or 1. 2584 Like the \CC lexical problem with closing template-syntax, e.g, ©Foo<Bar<int®>>®©, this issue can be solved with a more powerful lexer/parser.2585 2586 There are several ambiguous cases with operator identifiers, e.g., ©int *?*?()©, where the string ©*?*?© can be lexed as ©*©/©?*?© or ©*?©/©*?©.2587 Since it is common practise to put a unary operator juxtaposed to an identifier, e.g., ©*i©, users will be annoyed if they cannot do this with respect to operator identifiers.2327 Like the \CC lexical problem with closing template-syntax, e.g, \lstinline@Foo<Bar<int`>>`@, this issue can be solved with a more powerful lexer/parser. 2328 2329 There are several ambiguous cases with operator identifiers, e.g., \lstinline@int *?*?()@, where the string \lstinline@*?*?@ can be lexed as \lstinline@*@/\lstinline@?*?@ or \lstinline@*?@/\lstinline@*?@. 2330 Since it is common practise to put a unary operator juxtaposed to an identifier, e.g., \lstinline@*i@, users will be annoyed if they cannot do this with respect to operator identifiers. 2588 2331 Even with this special hack, there are 5 general cases that cannot be handled. 2589 The first case is for the function-call identifier ©?()©:2590 \begin{lstlisting} 2591 int * §\textvisiblespace§?()(); // declaration: space required after '*'2592 * §\textvisiblespace§?()(); // expression: space required after '*'2593 \end{lstlisting} 2594 Without the space, the string ©*?()©is ambiguous without N character look ahead;2595 it requires scanning ahead to determine if there is a ©'('©, which is the start of an argument/parameter list.2332 The first case is for the function-call identifier \lstinline@?()@: 2333 \begin{lstlisting} 2334 int *@\textvisiblespace@?()(); // declaration: space required after '*' 2335 *@\textvisiblespace@?()(); // expression: space required after '*' 2336 \end{lstlisting} 2337 Without the space, the string \lstinline@*?()@ is ambiguous without N character look ahead; 2338 it requires scanning ahead to determine if there is a \lstinline@'('@, which is the start of an argument/parameter list. 2596 2339 2597 2340 The 4 remaining cases occur in expressions: 2598 2341 \begin{lstlisting} 2599 i++ §\textvisiblespace§?i:0; // space required before '?'2600 i-- §\textvisiblespace§?i:0; // space required before '?'2601 i §\textvisiblespace§?++i:0; // space required after '?'2602 i §\textvisiblespace§?--i:0; // space required after '?'2603 \end{lstlisting} 2604 In the first two cases, the string ©i++?© is ambiguous, where this string can be lexed as ©i© / ©++?© or ©i++© / ©?©;2605 it requires scanning ahead to determine if there is a ©'('©, which is the start of an argument list.2606 In the second two cases, the string ©?++x© is ambiguous, where this string can be lexed as ©?++© / ©x© or ©?© / y©++x©;2607 it requires scanning ahead to determine if there is a ©'('©, which is the start of an argument list.2342 i++@\textvisiblespace@?i:0; // space required before '?' 2343 i--@\textvisiblespace@?i:0; // space required before '?' 2344 i@\textvisiblespace@?++i:0; // space required after '?' 2345 i@\textvisiblespace@?--i:0; // space required after '?' 2346 \end{lstlisting} 2347 In the first two cases, the string \lstinline@i++?@ is ambiguous, where this string can be lexed as \lstinline@i@ / \lstinline@++?@ or \lstinline@i++@ / \lstinline@?@; 2348 it requires scanning ahead to determine if there is a \lstinline@'('@, which is the start of an argument list. 2349 In the second two cases, the string \lstinline@?++x@ is ambiguous, where this string can be lexed as \lstinline@?++@ / \lstinline@x@ or \lstinline@?@ / y\lstinline@++x@; 2350 it requires scanning ahead to determine if there is a \lstinline@'('@, which is the start of an argument list. 2608 2351 2609 2352 … … 3531 3274 3532 3275 3533 \subsection [Comparing Key Features of CFA]{Comparing Key Features of \CFA}3276 \subsection{Comparing Key Features of \CFA} 3534 3277 3535 3278 … … 3544 3287 \begin{lstlisting} 3545 3288 struct Line { 3546 float l nth;3289 float length; 3547 3290 } 3548 3291 // default constructor 3549 3292 void ?{}( Line * l ) { 3550 l->lnth = 0.0;3551 3293 sout | "default" | endl; 3294 l.length = 0.0; 3552 3295 } 3553 3296 3554 3297 3555 3298 // constructor with length 3556 void ?{}( Line * l, float l nth ) {3557 l->lnth = lnth;3558 sout | "lnth" | l->lnth | endl; 3559 3299 void ?{}( Line * l, float length ) { 3300 sout | "length" | length | endl; 3301 3302 l.length = length; 3560 3303 } 3561 3304 3562 3305 // destructor 3563 void ^?( ) {3306 void ^?(Line &l) { 3564 3307 sout | "destroyed" | endl; 3565 l.l nth = 0.0;3308 l.length = 0.0; 3566 3309 } 3567 3310 3568 3311 // usage 3569 3312 Line line1; 3570 Line line2 ={ 3.4 };3313 Line line2{ 3.4 }; 3571 3314 \end{lstlisting} 3572 3315 & 3573 3316 \begin{lstlisting}[language=C++] 3574 3317 class Line { 3575 float l nth;3318 float length; 3576 3319 3577 3320 // default constructor 3578 3321 Line() { 3579 3322 cout << "default" << endl; 3580 l nth = 0.0;3581 } 3582 3583 3584 // constructor with l nth3323 length = 0.0; 3324 } 3325 3326 3327 // constructor with length 3585 3328 Line( float l ) { 3586 3329 cout << "length " << length … … 3905 3648 3906 3649 \begin{comment} 3907 \subsubsection{Modules /Packages}3650 \subsubsection{Modules/Packages} 3908 3651 3909 3652 \begin{lstlisting} … … 4147 3890 4148 3891 4149 \subsubsection [C++]{\CC}3892 \subsubsection{\CC} 4150 3893 4151 3894 \CC is a general-purpose programming language. … … 4221 3964 \begin{enumerate} 4222 3965 \item 4223 Change type of character literal ©int© to ©char©.3966 Change type of character literal \lstinline@int@ to \lstinline@char@. 4224 3967 This change allows overloading differentiation argument type matching, e.g.: 4225 3968 \begin{lstlisting} … … 4238 3981 4239 3982 \item 4240 Change: String literals made ©const©\\4241 The type of a string literal is changed from ©array of char© to ©array of const char©.4242 The type of a wide string literal is changed from ©array of wchar_t© to ©array of const wchar_t©. \\3983 Change: String literals made \lstinline@const@ \\ 3984 The type of a string literal is changed from \lstinline@array of char@ to \lstinline@array of const char@. 3985 The type of a wide string literal is changed from \lstinline@array of wchar_t@ to \lstinline@array of const wchar_t@. \\ 4243 3986 Rationale: This avoids calling an inappropriate overloaded function, which might expect to be able to modify its argument. 4244 3987 Effect on original feature: Change to semantics of well-defined feature. \\ 4245 Difficulty of converting: Simple syntactic transformation, because string literals can be converted to ©char*;©(4.2).3988 Difficulty of converting: Simple syntactic transformation, because string literals can be converted to \lstinline@char*;@ (4.2). 4246 3989 The most common cases are handled by a new but deprecated standard conversion: 4247 3990 \begin{lstlisting} … … 4282 4025 4283 4026 \CFA is C \emph{incompatible} on this issue, and provides semantics similar to \CC. 4284 Nested types are not hoisted and can be referenced using the field selection operator `` ©.©'', unlike the \CC scope-resolution operator ``©::©''.4027 Nested types are not hoisted and can be referenced using the field selection operator ``\lstinline@.@'', unlike the \CC scope-resolution operator ``\lstinline@::@''. 4285 4028 Given that nested types in C are equivalent to not using them, i.e., they are essentially useless, it is unlikely there are any realistic usages that break because of this incompatibility. 4029 4286 4030 4287 4031 \item … … 4295 4039 struct Y yy; // valid C, invalid C++ 4296 4040 \end{lstlisting} 4297 Rationale: C++ classes have member functions which require that classes establish scopes. 4298 The C rule would leave classes as an incomplete scope mechanism which would prevent C++ programmers from maintaining locality within a class. A coherent set of scope rules for C++ based on the C rule would be very complicated and C++ programmers would be unable to predict reliably the meanings of nontrivial examples involving nested or local functions. 4299 Effect on original feature: Change of semantics of welldefined feature. 4300 Difficulty of converting: Semantic transformation. To make the struct type name visible in the scope of the enclosing struct, the struct tag could be declared in the scope of the enclosing struct, before the enclosing struct is defined. Example: 4041 Rationale: C++ classes have member functions which require that classes establish scopes. The C rule 4042 would leave classes as an incomplete scope mechanism which would prevent C++ programmers from maintaining 4043 locality within a class. A coherent set of scope rules for C++ based on the C rule would be very 4044 complicated and C++ programmers would be unable to predict reliably the meanings of nontrivial examples 4045 involving nested or local functions. 4046 Effect on original feature: Change of semantics of welldefined 4047 feature. 4048 Difficulty of converting: Semantic transformation. To make the struct type name visible in the scope of 4049 the enclosing struct, the struct tag could be declared in the scope of the enclosing struct, before the enclosing 4050 struct is defined. Example: 4301 4051 \begin{lstlisting} 4302 4052 struct Y; // struct Y and struct X are at the same scope … … 4305 4055 }; 4306 4056 \end{lstlisting} 4307 All the definitions of C struct types enclosed in other struct definitions and accessed outside the scope of the enclosing struct could be exported to the scope of the enclosing struct. 4308 Note: this is a consequence of the difference in scope rules, which is documented in 3.3. 4057 All the definitions of C struct types enclosed in other struct definitions and accessed outside the scope of 4058 the enclosing struct could be exported to the scope of the enclosing struct. Note: this is a consequence of 4059 the difference in scope rules, which is documented in 3.3. 4309 4060 How widely used: Seldom. 4310 4061 \end{enumerate} … … 4318 4069 The general case is printing out a sequence of variables separated by whitespace. 4319 4070 \begin{quote2} 4320 \begin{tabular}{@{}l@{\hspace{3 em}}l@{}}4321 \multicolumn{1}{c@{\hspace{3 em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{\CC}} \\4071 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}} 4072 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{\CC}} \\ 4322 4073 \begin{lstlisting} 4323 4074 int x = 0, y = 1, z = 2; 4324 ®sout® ®|® x ®|® y ®|® z ®| endl®;4075 `sout` `|` x `|` y `|` z `| endl`; 4325 4076 \end{lstlisting} 4326 4077 & … … 4331 4082 \end{tabular} 4332 4083 \end{quote2} 4333 The \CFA form is half as many characters, and is similar to \Index{Python}I/O with respect to implicit separators.4084 The \CFA form is half as many characters, and is similar to Python I/O with respect to implicit separators. 4334 4085 4335 4086 The logical-or operator is used because it is the lowest-priority overloadable operator, other than assignment. … … 4358 4109 A seperator does not appear at the start or end of a line. 4359 4110 \begin{lstlisting}[belowskip=0pt] 4360 sout |1 | 2 | 3 | endl;4111 sout 1 | 2 | 3 | endl; 4361 4112 \end{lstlisting} 4362 4113 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] … … 4377 4128 which is a local mechanism to disable insertion of the separator character. 4378 4129 \item 4379 A seperator does not appear before a C string starting with the (extended) \Index{ASCII}\index{ASCII!extended} characters: \lstinline[mathescape=off]@([{$£¥¡¿«@4130 A seperator does not appear before a C string starting with the \Index{extended ASCII}\index{ASCII} characters: \lstinline[mathescape=off]@([{$£¥¿«@ 4380 4131 %$ 4381 4132 \begin{lstlisting}[mathescape=off] 4382 sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x $" | 4 | "x £" | 5 | "x ¥" | 6 | "x ¡" | 7 | "x ¿" | 8 | "x «" | 9| endl;4133 sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x $" | 4 | "x £" | 5 | "x ¥" | 6 | "x ¿" | 7 | "x «" | 8 | endl; 4383 4134 \end{lstlisting} 4384 4135 %$ 4385 4136 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] 4386 x (1 x [2 x {3 x $4 x £5 x ¥6 x ¡7 x ¿8 x «94137 x (1 x [2 x {3 x $4 x £5 x ¥6 x ¿7 x «8 4387 4138 \end{lstlisting} 4388 4139 %$ 4389 4140 \item 4390 A seperator does not appear after a C string ending with the (extended) \Index{ASCII}\index{ASCII!extended} characters: ©,.:;!?)]}%¢»©4141 A seperator does not appear after a C string ending with the extended ASCII characters: \lstinline@,.:;!?)]}%¢»@ 4391 4142 \begin{lstlisting}[belowskip=0pt] 4392 4143 sout | 1 | ", x" | 2 | ". x" | 3 | ": x" | 4 | "; x" | 5 | "! x" | 6 | "? x" | 7 | ") x" | 8 | "] x" | 9 | "} x" 4393 | 10 | "% x" | 11 | "¢ x" | 12 |"» x" | endl;4144 | 10 | "% x" | 11 | L"¢ x" | 12 | L"» x" | endl; 4394 4145 \end{lstlisting} 4395 4146 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] … … 4397 4148 \end{lstlisting} 4398 4149 \item 4399 A seperator does not appear before or after a C string begining/ending with the \Index{ASCII} quote or whitespace characters: \lstinline[showspaces=true]@`'" \t\v\f\r\n@4150 A seperator does not appear before or after a C string begining/ending with the characters: \lstinline@\f\n\r\t\v\`'"@ 4400 4151 \begin{lstlisting}[belowskip=0pt] 4401 sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x" | "x " | 4 | " x" | "x\t" | 1 | "\tx" | endl; 4402 \end{lstlisting} 4403 \begin{lstlisting}[mathescape=off,showspaces=true,showtabs=true,aboveskip=0pt,belowskip=0pt] 4404 x`1`x'2'x"3"x x 4 x x 1 x 4152 sout | "x '" | 1 | "' x \`" | 2 | "\` x \"" | 3 | "\" x" | endl; 4153 \end{lstlisting} 4154 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] 4155 x '1' x \`2\` x "3" x 4156 \end{lstlisting} 4157 \begin{lstlisting}[showtabs=true,aboveskip=0pt] 4158 sout | "x\t" | 1 | "\tx" | endl; 4159 x 1 x 4405 4160 \end{lstlisting} 4406 4161 \end{enumerate} … … 4434 4189 \end{lstlisting} 4435 4190 \begin{lstlisting}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt] 4436 1 2 34191 1 2 3 4437 4192 \end{lstlisting} 4438 4193 \begin{lstlisting}[mathescape=off,aboveskip=0pt,aboveskip=0pt,belowskip=0pt] … … 4445 4200 \end{lstlisting} 4446 4201 %$ 4447 \begin{comment} 4202 \VRef[Figure]{f:ExampleIO} shows an example of input and output I/O in \CFA. 4203 4204 \begin{figure} 4205 \begin{lstlisting}[mathescape=off] 4448 4206 #include <fstream> 4449 4207 4450 4208 int main() { 4451 int x = 3, y = 5, z = 7; 4452 sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2) | endl; 4453 sout | 1 | 2 | 3 | endl; 4454 sout | '1' | '2' | '3' | endl; 4455 sout | 1 | "" | 2 | "" | 3 | endl; 4456 sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x $" | 4 | "x £" | 5 | "x ¥" | 6 | "x ¡" | 7 | "x ¿" | 8 | "x «" | 9 | endl; 4457 sout | 1 | ", x" | 2 | ". x" | 3 | ": x" | 4 | "; x" | 5 | "! x" | 6 | "? x" | 7 | ") x" | 8 | "] x" | 9 | "} x" 4458 | 10 | "% x" | 11 | "¢ x" | 12 | "» x" | endl; 4459 sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x" | "x " | 4 | " x" | "x\t" | 1 | "\tx" | endl; 4460 sout | sepOn | 1 | 2 | 3 | sepOn | endl; // separator at start of line 4461 sout | 1 | sepOff | 2 | 3 | endl; // turn off implicit separator temporarily 4462 sout | sepDisable | 1 | 2 | 3 | endl; // turn off implicit separation, affects all subsequent prints 4463 sout | 1 | sepOn | 2 | 3 | endl; // turn on implicit separator temporarily 4464 sout | sepEnable | 1 | 2 | 3 | endl; // turn on implicit separation, affects all subsequent prints 4465 sepSet( sout, ", $" ); // change separator from " " to ", $" 4466 sout | 1 | 2 | 3 | endl; 4467 4468 } 4469 4470 // Local Variables: // 4471 // tab-width: 4 // 4472 // End: // 4473 \end{comment} 4474 %$ 4209 char c; // basic types 4210 short int si; 4211 unsigned short int usi; 4212 int i; 4213 unsigned int ui; 4214 long int li; 4215 unsigned long int uli; 4216 long long int lli; 4217 unsigned long long int ulli; 4218 float f; 4219 double d; 4220 long double ld; 4221 float _Complex fc; 4222 double _Complex dc; 4223 long double _Complex ldc; 4224 char s1[10], s2[10]; 4225 4226 ifstream in; // create / open file 4227 open( &in, "input.data", "r" ); 4228 4229 &in | &c // character 4230 | &si | &usi | &i | &ui | &li | &uli | &lli | &ulli // integral 4231 | &f | &d | &ld // floating point 4232 | &fc | &dc | &ldc // floating-point complex 4233 | cstr( s1 ) | cstr( s2, 10 ); // C string, length unchecked and checked 4234 4235 sout | c | ' ' | endl // character 4236 | si | usi | i | ui | li | uli | lli | ulli | endl // integral 4237 | f | d | ld | endl // floating point 4238 | fc | dc | ldc | endl; // complex 4239 sout | endl; 4240 sout | f | "" | d | "" | ld | endl // floating point without separator 4241 | sepDisable | fc | dc | ldc | sepEnable | endl // complex without separator 4242 | sepOn | s1 | sepOff | s2 | endl // local separator removal 4243 | s1 | "" | s2 | endl; // C string withou separator 4244 sout | endl; 4245 sepSet( sout, ", $" ); // change separator, maximum of 15 characters 4246 sout | f | d | ld | endl // floating point without separator 4247 | fc | dc | ldc | endl // complex without separator 4248 | s1 | s2 | endl; 4249 } 4250 4251 $ cat input.data 4252 A 1 2 3 4 5 6 7 8 1.1 1.2 1.3 1.1+2.3 1.1-2.3 1.1-2.3 abc xyz 4253 $ a.out 4254 A 4255 1 2 3 4 5 6 7 8 4256 1.1 1.2 1.3 4257 1.1+2.3i 1.1-2.3i 1.1-2.3i 4258 4259 1.11.21.3 4260 1.1+2.3i1.1-2.3i1.1-2.3i 4261 abcxyz 4262 abcxyz 4263 4264 1.1, $1.2, $1.3 4265 1.1+2.3i, $1.1-2.3i, $1.1-2.3i 4266 abc, $xyz 4267 \end{lstlisting} 4268 \caption{Example I/O} 4269 \label{f:ExampleIO} 4270 \end{figure} 4475 4271 4476 4272 … … 4484 4280 4485 4281 \begin{lstlisting} 4486 forall( otype T ) T * malloc( void ); §\indexc{malloc}§4282 forall( otype T ) T * malloc( void ); 4487 4283 forall( otype T ) T * malloc( char fill ); 4488 4284 forall( otype T ) T * malloc( T * ptr, size_t size ); 4489 4285 forall( otype T ) T * malloc( T * ptr, size_t size, unsigned char fill ); 4490 forall( otype T ) T * calloc( size_t nmemb );§\indexc{calloc}§4491 forall( otype T ) T * realloc( T * ptr, size_t size ); §\indexc{ato}§4286 forall( otype T ) T * calloc( size_t size ); 4287 forall( otype T ) T * realloc( T * ptr, size_t size ); 4492 4288 forall( otype T ) T * realloc( T * ptr, size_t size, unsigned char fill ); 4493 4289 4494 forall( otype T ) T * aligned_alloc( size_t alignment ); §\indexc{ato}§4290 forall( otype T ) T * aligned_alloc( size_t alignment ); 4495 4291 forall( otype T ) T * memalign( size_t alignment ); // deprecated 4496 4292 forall( otype T ) int posix_memalign( T ** ptr, size_t alignment ); … … 4501 4297 4502 4298 4503 \subsection{ato /strto}4504 4505 \begin{lstlisting} 4506 int ato( const char * ptr ); §\indexc{ato}§4299 \subsection{ato/strto} 4300 4301 \begin{lstlisting} 4302 int ato( const char * ptr ); 4507 4303 unsigned int ato( const char * ptr ); 4508 4304 long int ato( const char * ptr ); … … 4532 4328 4533 4329 4534 \subsection{bsearch /qsort}4330 \subsection{bsearch/qsort} 4535 4331 4536 4332 \begin{lstlisting} 4537 4333 forall( otype T | { int ?<?( T, T ); } ) 4538 T * bsearch( const T key, const T * arr, size_t dimension ); §\indexc{bsearch}§4334 T * bsearch( const T key, const T * arr, size_t dimension ); 4539 4335 4540 4336 forall( otype T | { int ?<?( T, T ); } ) 4541 void qsort( const T * arr, size_t dimension ); §\indexc{qsort}§4337 void qsort( const T * arr, size_t dimension ); 4542 4338 \end{lstlisting} 4543 4339 … … 4546 4342 4547 4343 \begin{lstlisting} 4548 char abs( char );§\indexc{abs}§ 4549 int abs( int ); 4344 char abs( char ); 4345 extern "C" { 4346 int abs( int ); // use default C routine for int 4347 } // extern "C" 4550 4348 long int abs( long int ); 4551 4349 long long int abs( long long int ); … … 4553 4351 double abs( double ); 4554 4352 long double abs( long double ); 4555 float abs( float _Complex ); 4556 double abs( double _Complex ); 4557 long double abs( long double _Complex ); 4353 float _Complex abs( float _Complex ); 4354 double _Complex abs( double _Complex ); 4355 long double _Complex abs( long double _Complex ); 4356 \end{lstlisting} 4357 4358 4359 \subsection{floor/ceil} 4360 4361 \begin{lstlisting} 4362 float floor( float ); 4363 extern "C" { 4364 double floor( double ); // use C routine for double 4365 } // extern "C" 4366 long double floor( long double ); 4367 4368 float ceil( float ); 4369 extern "C" { 4370 double ceil( double ); // use C routine for double 4371 } // extern "C" 4372 long double ceil( long double ); 4558 4373 \end{lstlisting} 4559 4374 … … 4562 4377 4563 4378 \begin{lstlisting} 4564 void rand48seed( long int s ); §\indexc{rand48seed}§4565 char rand48(); §\indexc{rand48}§4379 void rand48seed( long int s ); 4380 char rand48(); 4566 4381 int rand48(); 4567 4382 unsigned int rand48(); … … 4576 4391 4577 4392 4578 \subsection{min / max /swap}4393 \subsection{min/max/swap} 4579 4394 4580 4395 \begin{lstlisting} 4581 4396 forall( otype T | { int ?<?( T, T ); } ) 4582 T min( const T t1, const T t2 ); §\indexc{min}§4397 T min( const T t1, const T t2 ); 4583 4398 4584 4399 forall( otype T | { int ?>?( T, T ); } ) 4585 T max( const T t1, const T t2 ); §\indexc{max}§4400 T max( const T t1, const T t2 ); 4586 4401 4587 4402 forall( otype T ) 4588 void swap( T * t1, T * t2 );§\indexc{swap}§ 4589 \end{lstlisting} 4590 4591 4592 \section{Math Library} 4593 \label{s:Math Library} 4594 4595 The goal of the \CFA math-library is to wrap many of the existing C math library-routines that are explicitly polymorphic into implicitly polymorphic versions. 4596 4597 4598 \subsection{General} 4599 4600 \begin{lstlisting} 4601 float fabs( float );§\indexc{fabs}§ 4602 double fabs( double ); 4603 long double fabs( long double ); 4604 float cabs( float _Complex ); 4605 double cabs( double _Complex ); 4606 long double cabs( long double _Complex ); 4607 4608 float ?%?( float, float );§\indexc{fmod}§ 4609 float fmod( float, float ); 4610 double ?%?( double, double ); 4611 double fmod( double, double ); 4612 long double ?%?( long double, long double ); 4613 long double fmod( long double, long double ); 4614 4615 float remainder( float, float );§\indexc{remainder}§ 4616 double remainder( double, double ); 4617 long double remainder( long double, long double ); 4618 4619 [ int, float ] remquo( float, float );§\indexc{remquo}§ 4620 float remquo( float, float, int * ); 4621 [ int, double ] remquo( double, double ); 4622 double remquo( double, double, int * ); 4623 [ int, long double ] remquo( long double, long double ); 4624 long double remquo( long double, long double, int * ); 4625 4626 [ int, float ] div( float, float ); // alternative name for remquo 4627 float div( float, float, int * );§\indexc{div}§ 4628 [ int, double ] div( double, double ); 4629 double div( double, double, int * ); 4630 [ int, long double ] div( long double, long double ); 4631 long double div( long double, long double, int * ); 4632 4633 float fma( float, float, float );§\indexc{fma}§ 4634 double fma( double, double, double ); 4635 long double fma( long double, long double, long double ); 4636 4637 float fdim( float, float );§\indexc{fdim}§ 4638 double fdim( double, double ); 4639 long double fdim( long double, long double ); 4640 4641 float nan( const char * );§\indexc{nan}§ 4642 double nan( const char * ); 4643 long double nan( const char * ); 4644 \end{lstlisting} 4645 4646 4647 \subsection{Exponential} 4648 4649 \begin{lstlisting} 4650 float exp( float );§\indexc{exp}§ 4651 double exp( double ); 4652 long double exp( long double ); 4653 float _Complex exp( float _Complex ); 4654 double _Complex exp( double _Complex ); 4655 long double _Complex exp( long double _Complex ); 4656 4657 float exp2( float );§\indexc{exp2}§ 4658 double exp2( double ); 4659 long double exp2( long double ); 4660 float _Complex exp2( float _Complex ); 4661 double _Complex exp2( double _Complex ); 4662 long double _Complex exp2( long double _Complex ); 4663 4664 float expm1( float );§\indexc{expm1}§ 4665 double expm1( double ); 4666 long double expm1( long double ); 4667 4668 float log( float );§\indexc{log}§ 4669 double log( double ); 4670 long double log( long double ); 4671 float _Complex log( float _Complex ); 4672 double _Complex log( double _Complex ); 4673 long double _Complex log( long double _Complex ); 4674 4675 float log2( float );§\indexc{log2}§ 4676 double log2( double ); 4677 long double log2( long double ); 4678 float _Complex log2( float _Complex ); 4679 double _Complex log2( double _Complex ); 4680 long double _Complex log2( long double _Complex ); 4681 4682 float log10( float );§\indexc{log10}§ 4683 double log10( double ); 4684 long double log10( long double ); 4685 float _Complex log10( float _Complex ); 4686 double _Complex log10( double _Complex ); 4687 long double _Complex log10( long double _Complex ); 4688 4689 float log1p( float );§\indexc{log1p}§ 4690 double log1p( double ); 4691 long double log1p( long double ); 4692 4693 int ilogb( float );§\indexc{ilogb}§ 4694 int ilogb( double ); 4695 int ilogb( long double ); 4696 4697 float logb( float );§\indexc{logb}§ 4698 double logb( double ); 4699 long double logb( long double ); 4700 \end{lstlisting} 4701 4702 4703 \subsection{Power} 4704 4705 \begin{lstlisting} 4706 float sqrt( float );§\indexc{sqrt}§ 4707 double sqrt( double ); 4708 long double sqrt( long double ); 4709 float _Complex sqrt( float _Complex ); 4710 double _Complex sqrt( double _Complex ); 4711 long double _Complex sqrt( long double _Complex ); 4712 4713 float cbrt( float );§\indexc{cbrt}§ 4714 double cbrt( double ); 4715 long double cbrt( long double ); 4716 4717 float hypot( float, float );§\indexc{hypot}§ 4718 double hypot( double, double ); 4719 long double hypot( long double, long double ); 4720 4721 float pow( float, float );§\indexc{pow}§ 4722 double pow( double, double ); 4723 long double pow( long double, long double ); 4724 float _Complex pow( float _Complex, float _Complex ); 4725 double _Complex pow( double _Complex, double _Complex ); 4726 long double _Complex pow( long double _Complex, long double _Complex ); 4727 \end{lstlisting} 4728 4729 4730 \subsection{Trigonometric} 4731 4732 \begin{lstlisting} 4733 float sin( float );§\indexc{sin}§ 4734 double sin( double ); 4735 long double sin( long double ); 4736 float _Complex sin( float _Complex ); 4737 double _Complex sin( double _Complex ); 4738 long double _Complex sin( long double _Complex ); 4739 4740 float cos( float );§\indexc{cos}§ 4741 double cos( double ); 4742 long double cos( long double ); 4743 float _Complex cos( float _Complex ); 4744 double _Complex cos( double _Complex ); 4745 long double _Complex cos( long double _Complex ); 4746 4747 float tan( float );§\indexc{tan}§ 4748 double tan( double ); 4749 long double tan( long double ); 4750 float _Complex tan( float _Complex ); 4751 double _Complex tan( double _Complex ); 4752 long double _Complex tan( long double _Complex ); 4753 4754 float asin( float );§\indexc{asin}§ 4755 double asin( double ); 4756 long double asin( long double ); 4757 float _Complex asin( float _Complex ); 4758 double _Complex asin( double _Complex ); 4759 long double _Complex asin( long double _Complex ); 4760 4761 float acos( float );§\indexc{acos}§ 4762 double acos( double ); 4763 long double acos( long double ); 4764 float _Complex acos( float _Complex ); 4765 double _Complex acos( double _Complex ); 4766 long double _Complex acos( long double _Complex ); 4767 4768 float atan( float );§\indexc{atan}§ 4769 double atan( double ); 4770 long double atan( long double ); 4771 float _Complex atan( float _Complex ); 4772 double _Complex atan( double _Complex ); 4773 long double _Complex atan( long double _Complex ); 4774 4775 float atan2( float, float );§\indexc{atan2}§ 4776 double atan2( double, double ); 4777 long double atan2( long double, long double ); 4778 4779 float atan( float, float ); // alternative name for atan2 4780 double atan( double, double );§\indexc{atan}§ 4781 long double atan( long double, long double ); 4782 \end{lstlisting} 4783 4784 4785 \subsection{Hyperbolic} 4786 4787 \begin{lstlisting} 4788 float sinh( float );§\indexc{sinh}§ 4789 double sinh( double ); 4790 long double sinh( long double ); 4791 float _Complex sinh( float _Complex ); 4792 double _Complex sinh( double _Complex ); 4793 long double _Complex sinh( long double _Complex ); 4794 4795 float cosh( float );§\indexc{cosh}§ 4796 double cosh( double ); 4797 long double cosh( long double ); 4798 float _Complex cosh( float _Complex ); 4799 double _Complex cosh( double _Complex ); 4800 long double _Complex cosh( long double _Complex ); 4801 4802 float tanh( float );§\indexc{tanh}§ 4803 double tanh( double ); 4804 long double tanh( long double ); 4805 float _Complex tanh( float _Complex ); 4806 double _Complex tanh( double _Complex ); 4807 long double _Complex tanh( long double _Complex ); 4808 4809 float asinh( float );§\indexc{asinh}§ 4810 double asinh( double ); 4811 long double asinh( long double ); 4812 float _Complex asinh( float _Complex ); 4813 double _Complex asinh( double _Complex ); 4814 long double _Complex asinh( long double _Complex ); 4815 4816 float acosh( float );§\indexc{acosh}§ 4817 double acosh( double ); 4818 long double acosh( long double ); 4819 float _Complex acosh( float _Complex ); 4820 double _Complex acosh( double _Complex ); 4821 long double _Complex acosh( long double _Complex ); 4822 4823 float atanh( float );§\indexc{atanh}§ 4824 double atanh( double ); 4825 long double atanh( long double ); 4826 float _Complex atanh( float _Complex ); 4827 double _Complex atanh( double _Complex ); 4828 long double _Complex atanh( long double _Complex ); 4829 \end{lstlisting} 4830 4831 4832 \subsection{Error / Gamma} 4833 4834 \begin{lstlisting} 4835 float erf( float );§\indexc{erf}§ 4836 double erf( double ); 4837 long double erf( long double ); 4838 float _Complex erf( float _Complex ); 4839 double _Complex erf( double _Complex ); 4840 long double _Complex erf( long double _Complex ); 4841 4842 float erfc( float );§\indexc{erfc}§ 4843 double erfc( double ); 4844 long double erfc( long double ); 4845 float _Complex erfc( float _Complex ); 4846 double _Complex erfc( double _Complex ); 4847 long double _Complex erfc( long double _Complex ); 4848 4849 float lgamma( float );§\indexc{lgamma}§ 4850 double lgamma( double ); 4851 long double lgamma( long double ); 4852 float lgamma( float, int * ); 4853 double lgamma( double, int * ); 4854 long double lgamma( long double, int * ); 4855 4856 float tgamma( float );§\indexc{tgamma}§ 4857 double tgamma( double ); 4858 long double tgamma( long double ); 4859 \end{lstlisting} 4860 4861 4862 \subsection{Nearest Integer} 4863 4864 \begin{lstlisting} 4865 float floor( float );§\indexc{floor}§ 4866 double floor( double ); 4867 long double floor( long double ); 4868 4869 float ceil( float );§\indexc{ceil}§ 4870 double ceil( double ); 4871 long double ceil( long double ); 4872 4873 float trunc( float );§\indexc{trunc}§ 4874 double trunc( double ); 4875 long double trunc( long double ); 4876 4877 float rint( float );§\indexc{rint}§ 4878 long double rint( long double ); 4879 long int rint( float ); 4880 long int rint( double ); 4881 long int rint( long double ); 4882 long long int rint( float ); 4883 long long int rint( double ); 4884 long long int rint( long double ); 4885 4886 long int lrint( float );§\indexc{lrint}§ 4887 long int lrint( double ); 4888 long int lrint( long double ); 4889 long long int llrint( float ); 4890 long long int llrint( double ); 4891 long long int llrint( long double ); 4892 4893 float nearbyint( float );§\indexc{nearbyint}§ 4894 double nearbyint( double ); 4895 long double nearbyint( long double ); 4896 4897 float round( float );§\indexc{round}§ 4898 long double round( long double ); 4899 long int round( float ); 4900 long int round( double ); 4901 long int round( long double ); 4902 long long int round( float ); 4903 long long int round( double ); 4904 long long int round( long double ); 4905 4906 long int lround( float );§\indexc{lround}§ 4907 long int lround( double ); 4908 long int lround( long double ); 4909 long long int llround( float ); 4910 long long int llround( double ); 4911 long long int llround( long double ); 4912 \end{lstlisting} 4913 4914 4915 \subsection{Manipulation} 4916 4917 \begin{lstlisting} 4918 float copysign( float, float );§\indexc{copysign}§ 4919 double copysign( double, double ); 4920 long double copysign( long double, long double ); 4921 4922 float frexp( float, int * );§\indexc{frexp}§ 4923 double frexp( double, int * ); 4924 long double frexp( long double, int * ); 4925 4926 float ldexp( float, int );§\indexc{ldexp}§ 4927 double ldexp( double, int ); 4928 long double ldexp( long double, int ); 4929 4930 [ float, float ] modf( float );§\indexc{modf}§ 4931 float modf( float, float * ); 4932 [ double, double ] modf( double ); 4933 double modf( double, double * ); 4934 [ long double, long double ] modf( long double ); 4935 long double modf( long double, long double * ); 4936 4937 float nextafter( float, float );§\indexc{nextafter}§ 4938 double nextafter( double, double ); 4939 long double nextafter( long double, long double ); 4940 4941 float nexttoward( float, long double );§\indexc{nexttoward}§ 4942 double nexttoward( double, long double ); 4943 long double nexttoward( long double, long double ); 4944 4945 float scalbn( float, int );§\indexc{scalbn}§ 4946 double scalbn( double, int ); 4947 long double scalbn( long double, int ); 4948 4949 float scalbln( float, long int );§\indexc{scalbln}§ 4950 double scalbln( double, long int ); 4951 long double scalbln( long double, long int ); 4403 void swap( T * t1, T * t2 ); 4952 4404 \end{lstlisting} 4953 4405 … … 4961 4413 \begin{lstlisting} 4962 4414 // implementation 4963 struct Rational { §\indexc{Rational}§4415 struct Rational { 4964 4416 long int numerator, denominator; // invariant: denominator > 0 4965 4417 }; // Rational -
src/ArgTweak/FunctionFixer.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FunctionFixer.cc -- 7 // FunctionFixer.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 42 42 Expression *FunctionFixer::mutate( UntypedExpr *untypedExpr ) throw ( SemanticError ) { 43 43 assert( untypedExpr != 0 ); 44 NameExpr *function; 44 45 45 if ( NameExpr * function = dynamic_cast< NameExpr *>(untypedExpr->get_function() )) {46 if ( ( function = dynamic_cast< NameExpr *>(untypedExpr->get_function()) ) != 0 ) { 46 47 std::list < DeclarationWithType * > options; 47 48 index->lookupId ( function->get_name(), options ); 48 49 for ( std::list < DeclarationWithType * >::iterator i = options.begin(); i != options.end(); i++ ) { 49 if ( FunctionType * f = dynamic_cast< FunctionType * > ( (*i)->get_type() ) ) { 50 FunctionType *f; 51 if ( ( f = dynamic_cast< FunctionType * > ( (*i)->get_type() ) ) != 0 ) { 50 52 std::list < DeclarationWithType * > &pars = f->get_parameters(); 53 51 54 bool candidateExists ; 52 for ( std::list < DeclarationWithType * >::iterator p = pars.begin(); p != pars.end(); p++ ) {55 for ( std::list < DeclarationWithType * >::iterator p = pars.begin(); p != pars.end(); p++ ) 53 56 if ( ( candidateExists = align( f->get_parameters(), untypedExpr->get_args(), Matcher() ) ) ) break; 54 } 57 55 58 if ( ! candidateExists ) throw SemanticError("Error in function call"); 56 59 } // if -
src/CodeGen/CodeGenerator.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // CodeGenerator.cc -- 7 // CodeGenerator.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 9 13:21:00201613 // Update Count : 2 5612 // Last Modified On : Wed Mar 2 17:32:16 2016 13 // Update Count : 243 14 14 // 15 15 … … 26 26 #include "SynTree/Statement.h" 27 27 #include "SynTree/Type.h" 28 #include "SynTree/Attribute.h"29 28 30 29 #include "Common/utility.h" … … 34 33 #include "OperatorTable.h" 35 34 #include "GenType.h" 36 37 #include "InitTweak/InitTweak.h"38 35 39 36 using namespace std; … … 48 45 } 49 46 50 ostream & CodeGenerator::Indenter::operator()( ostream & output ) const{47 ostream & CodeGenerator::Indenter::operator()( ostream & output ) { 51 48 return output << string( cg.cur_indent, ' ' ); 52 49 } 53 50 54 ostream & operator<<( ostream & output, constCodeGenerator::Indenter &indent ) {51 ostream & operator<<( ostream & output, CodeGenerator::Indenter &indent ) { 55 52 return indent( output ); 56 53 } 57 54 58 CodeGenerator::LabelPrinter & CodeGenerator::LabelPrinter::operator()( std::list< Label > & l ) { 59 labels = &l; 60 return *this; 61 } 62 63 ostream & operator<<( ostream & output, CodeGenerator::LabelPrinter &printLabels ) { 64 std::list< Label > & labs = *printLabels.labels; 65 // l.unique(); // assumes a sorted list. Why not use set? Does order matter? 66 for ( Label & l : labs ) { 67 output << l.get_name() + ": "; 68 printLabels.cg.genAttributes( l.get_attributes() ); 69 } 70 return output; 71 } 72 73 CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ), printLabels( *this ) { } 55 CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ) { } 74 56 75 57 CodeGenerator::CodeGenerator( std::ostream &os, std::string init, int indentation, bool infunp ) 76 : indent( *this), cur_indent( indentation ), insideFunction( infunp ), output( os ) , printLabels( *this ){58 : indent( *this), cur_indent( indentation ), insideFunction( infunp ), output( os ) { 77 59 //output << std::string( init ); 78 60 } 79 61 80 62 CodeGenerator::CodeGenerator( std::ostream &os, char *init, int indentation, bool infunp ) 81 : indent( *this ), cur_indent( indentation ), insideFunction( infunp ), output( os ) , printLabels( *this ){63 : indent( *this ), cur_indent( indentation ), insideFunction( infunp ), output( os ) { 82 64 //output << std::string( init ); 83 65 } … … 85 67 string mangleName( DeclarationWithType *decl ) { 86 68 if ( decl->get_mangleName() != "" ) { 87 // need to incorporate scope level in order to differentiate names for destructors 88 return decl->get_scopedMangleName(); 69 return decl->get_mangleName(); 89 70 } else { 90 71 return decl->get_name(); 91 72 } // if 92 73 } 93 94 void CodeGenerator::genAttributes( std::list< Attribute * > & attributes ) {95 if ( ! attributes.empty() ) {96 output << "__attribute__ ((";97 for ( Attribute *& attr : attributes ) {98 if ( ! attr->empty() ) {99 output << attr->get_name() << "(";100 genCommaList( attr->get_parameters().begin(), attr->get_parameters().end() );101 output << ")";102 }103 output << ",";104 }105 output << ")) ";106 }107 }108 109 74 110 75 //*** Declarations 111 76 void CodeGenerator::visit( FunctionDecl *functionDecl ) { 112 genAttributes( functionDecl->get_attributes() );113 114 77 handleStorageClass( functionDecl ); 115 78 if ( functionDecl->get_isInline() ) { … … 136 99 handleStorageClass( objectDecl ); 137 100 output << genType( objectDecl->get_type(), mangleName( objectDecl ) ); 138 101 139 102 if ( objectDecl->get_init() ) { 140 103 output << " = "; … … 150 113 if ( aggDecl->get_name() != "" ) 151 114 output << aggDecl->get_name(); 152 115 153 116 std::list< Declaration * > &memb = aggDecl->get_members(); 154 117 … … 156 119 output << " {" << endl; 157 120 158 cur_indent += CodeGenerator::tabsize; 121 cur_indent += CodeGenerator::tabsize; 159 122 for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end(); i++) { 160 output << indent; 123 output << indent; 161 124 (*i)->accept( *this ); 162 125 output << ";" << endl; 163 126 } 164 127 165 cur_indent -= CodeGenerator::tabsize; 128 cur_indent -= CodeGenerator::tabsize; 166 129 167 130 output << indent << "}"; … … 178 141 handleAggregate( aggregateDecl ); 179 142 } 180 143 181 144 void CodeGenerator::visit( EnumDecl *aggDecl ) { 182 145 output << "enum "; … … 184 147 if ( aggDecl->get_name() != "" ) 185 148 output << aggDecl->get_name(); 186 149 187 150 std::list< Declaration* > &memb = aggDecl->get_members(); 188 151 … … 190 153 output << " {" << endl; 191 154 192 cur_indent += CodeGenerator::tabsize; 155 cur_indent += CodeGenerator::tabsize; 193 156 for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end(); i++) { 194 157 ObjectDecl *obj = dynamic_cast< ObjectDecl* >( *i ); 195 158 assert( obj ); 196 output << indent << mangleName( obj ); 159 output << indent << mangleName( obj ); 197 160 if ( obj->get_init() ) { 198 161 output << " = "; … … 202 165 } // for 203 166 204 cur_indent -= CodeGenerator::tabsize; 167 cur_indent -= CodeGenerator::tabsize; 205 168 206 169 output << indent << "}"; 207 170 } // if 208 171 } 209 172 210 173 void CodeGenerator::visit( TraitDecl *aggregateDecl ) {} 211 174 212 175 void CodeGenerator::visit( TypedefDecl *typeDecl ) { 213 176 output << "typedef "; 214 177 output << genType( typeDecl->get_base(), typeDecl->get_name() ); 215 178 } 216 179 217 180 void CodeGenerator::visit( TypeDecl *typeDecl ) { 218 181 // really, we should mutate this into something that isn't a TypeDecl but that requires large-scale changes, … … 250 213 printDesignators( init->get_designators() ); 251 214 output << "{ "; 252 if ( init->begin_initializers() == init->end_initializers() ) { 253 // illegal to leave initializer list empty for scalar initializers, 254 // but always legal to have 0 255 output << "0"; 256 } else { 257 genCommaList( init->begin_initializers(), init->end_initializers() ); 258 } 215 genCommaList( init->begin_initializers(), init->end_initializers() ); 259 216 output << " }"; 260 217 } 261 218 262 void CodeGenerator::visit( Constant *constant ) { 219 void CodeGenerator::visit( Constant *constant ) { 263 220 output << constant->get_value() ; 264 221 } … … 266 223 //*** Expressions 267 224 void CodeGenerator::visit( ApplicationExpr *applicationExpr ) { 268 extension( applicationExpr );269 225 if ( VariableExpr *varExpr = dynamic_cast< VariableExpr* >( applicationExpr->get_function() ) ) { 270 226 OperatorInfo opInfo; … … 275 231 case OT_POSTFIXASSIGN: 276 232 case OT_INFIXASSIGN: 277 case OT_CTOR:278 case OT_DTOR:279 233 { 280 234 assert( arg != applicationExpr->get_args().end() ); 281 235 if ( AddressExpr *addrExpr = dynamic_cast< AddressExpr * >( *arg ) ) { 282 // remove & from first assignment/ctor argument236 283 237 *arg = addrExpr->get_arg(); 284 238 } else { 285 // no address-of operator, so must be a pointer - add dereference286 239 UntypedExpr *newExpr = new UntypedExpr( new NameExpr( "*?" ) ); 287 240 newExpr->get_args().push_back( *arg ); 288 assert( (*arg)->get_results().size() == 1 );289 Type * type = InitTweak::getPointerBase( (*arg)->get_results().front() );290 assert( type );291 newExpr->get_results().push_back( type );292 241 *arg = newExpr; 293 242 } // if 294 243 break; 295 244 } 296 245 297 246 default: 298 247 // do nothing 299 248 ; 300 249 } 301 250 302 251 switch ( opInfo.type ) { 303 252 case OT_INDEX: … … 308 257 output << "]"; 309 258 break; 310 259 311 260 case OT_CALL: 312 261 // there are no intrinsic definitions of the function call operator 313 262 assert( false ); 314 263 break; 315 316 case OT_CTOR: 317 case OT_DTOR: 318 if ( applicationExpr->get_args().size() == 1 ) { 319 // the expression fed into a single parameter constructor or destructor 320 // may contain side effects, so must still output this expression 321 output << "("; 322 (*arg++)->accept( *this ); 323 output << ") /* " << opInfo.inputName << " */"; 324 } else if ( applicationExpr->get_args().size() == 2 ) { 325 // intrinsic two parameter constructors are essentially bitwise assignment 326 output << "("; 327 (*arg++)->accept( *this ); 328 output << opInfo.symbol; 329 (*arg)->accept( *this ); 330 output << ") /* " << opInfo.inputName << " */"; 331 } else { 332 // no constructors with 0 or more than 2 parameters 333 assert( false ); 334 } 335 break; 336 264 337 265 case OT_PREFIX: 338 266 case OT_PREFIXASSIGN: … … 343 271 output << ")"; 344 272 break; 345 273 346 274 case OT_POSTFIX: 347 275 case OT_POSTFIXASSIGN: … … 350 278 output << opInfo.symbol; 351 279 break; 352 353 280 354 281 case OT_INFIX: … … 361 288 output << ")"; 362 289 break; 363 290 364 291 case OT_CONSTANT: 365 292 case OT_LABELADDRESS: … … 380 307 } // if 381 308 } 382 309 383 310 void CodeGenerator::visit( UntypedExpr *untypedExpr ) { 384 extension( untypedExpr );385 311 if ( NameExpr *nameExpr = dynamic_cast< NameExpr* >( untypedExpr->get_function() ) ) { 386 312 OperatorInfo opInfo; … … 395 321 output << "]"; 396 322 break; 397 323 398 324 case OT_CALL: 399 325 assert( false ); 400 401 402 case OT_CTOR: 403 case OT_DTOR: 404 if ( untypedExpr->get_args().size() == 1 ) { 405 // the expression fed into a single parameter constructor or destructor 406 // may contain side effects, so must still output this expression 407 output << "("; 408 (*arg++)->accept( *this ); 409 output << ") /* " << opInfo.inputName << " */"; 410 } else if ( untypedExpr->get_args().size() == 2 ) { 411 // intrinsic two parameter constructors are essentially bitwise assignment 412 output << "("; 413 (*arg++)->accept( *this ); 414 output << opInfo.symbol; 415 (*arg)->accept( *this ); 416 output << ") /* " << opInfo.inputName << " */"; 417 } else { 418 // no constructors with 0 or more than 2 parameters 419 assert( false ); 420 } 421 break; 422 326 break; 327 423 328 case OT_PREFIX: 424 329 case OT_PREFIXASSIGN: … … 430 335 output << ")"; 431 336 break; 432 337 433 338 case OT_POSTFIX: 434 339 case OT_POSTFIXASSIGN: … … 437 342 output << opInfo.symbol; 438 343 break; 439 344 440 345 case OT_INFIX: 441 346 case OT_INFIXASSIGN: … … 447 352 output << ")"; 448 353 break; 449 354 450 355 case OT_CONSTANT: 451 356 // there are no intrinsic definitions of 0 or 1 as functions … … 465 370 } // if 466 371 } 467 372 468 373 void CodeGenerator::visit( NameExpr *nameExpr ) { 469 extension( nameExpr );470 374 OperatorInfo opInfo; 471 375 if ( operatorLookup( nameExpr->get_name(), opInfo ) ) { … … 476 380 } // if 477 381 } 478 382 479 383 void CodeGenerator::visit( AddressExpr *addressExpr ) { 480 extension( addressExpr );481 384 output << "(&"; 482 385 // this hack makes sure that we don't convert "constant_zero" to "0" if we're taking its address … … 490 393 491 394 void CodeGenerator::visit( CastExpr *castExpr ) { 492 extension( castExpr );493 395 output << "("; 494 396 if ( castExpr->get_results().empty() ) { … … 507 409 output << ")"; 508 410 } 509 411 510 412 void CodeGenerator::visit( UntypedMemberExpr *memberExpr ) { 511 413 assert( false ); 512 414 } 513 415 514 416 void CodeGenerator::visit( MemberExpr *memberExpr ) { 515 extension( memberExpr );516 417 memberExpr->get_aggregate()->accept( *this ); 517 418 output << "." << mangleName( memberExpr->get_member() ); 518 419 } 519 420 520 421 void CodeGenerator::visit( VariableExpr *variableExpr ) { 521 extension( variableExpr );522 422 OperatorInfo opInfo; 523 423 if ( variableExpr->get_var()->get_linkage() == LinkageSpec::Intrinsic && operatorLookup( variableExpr->get_var()->get_name(), opInfo ) && opInfo.type == OT_CONSTANT ) { … … 527 427 } // if 528 428 } 529 429 530 430 void CodeGenerator::visit( ConstantExpr *constantExpr ) { 531 431 assert( constantExpr->get_constant() ); 532 extension( constantExpr );533 432 constantExpr->get_constant()->accept( *this ); 534 433 } 535 434 536 435 void CodeGenerator::visit( SizeofExpr *sizeofExpr ) { 537 extension( sizeofExpr );538 436 output << "sizeof("; 539 437 if ( sizeofExpr->get_isType() ) { … … 546 444 547 445 void CodeGenerator::visit( AlignofExpr *alignofExpr ) { 548 extension( alignofExpr );549 446 // use GCC extension to avoid bumping std to C11 550 447 output << "__alignof__("; … … 562 459 563 460 void CodeGenerator::visit( OffsetofExpr *offsetofExpr ) { 564 extension( offsetofExpr );565 461 // use GCC builtin 566 462 output << "__builtin_offsetof("; … … 573 469 assert( false && "OffsetPackExpr should not reach code generation" ); 574 470 } 575 471 576 472 void CodeGenerator::visit( LogicalExpr *logicalExpr ) { 577 extension( logicalExpr );578 473 output << "("; 579 474 logicalExpr->get_arg1()->accept( *this ); … … 586 481 output << ")"; 587 482 } 588 483 589 484 void CodeGenerator::visit( ConditionalExpr *conditionalExpr ) { 590 extension( conditionalExpr );591 485 output << "("; 592 486 conditionalExpr->get_arg1()->accept( *this ); … … 597 491 output << ")"; 598 492 } 599 493 600 494 void CodeGenerator::visit( CommaExpr *commaExpr ) { 601 extension( commaExpr );602 495 output << "("; 603 496 commaExpr->get_arg1()->accept( *this ); … … 606 499 output << ")"; 607 500 } 608 501 609 502 void CodeGenerator::visit( TupleExpr *tupleExpr ) {} 610 503 611 504 void CodeGenerator::visit( TypeExpr *typeExpr ) {} 612 505 613 506 void CodeGenerator::visit( AsmExpr *asmExpr ) { 614 extension( asmExpr );615 507 if ( asmExpr->get_inout() ) { 616 508 output << "[ "; … … 640 532 } 641 533 } 642 cur_indent -= CodeGenerator::tabsize; 534 cur_indent -= CodeGenerator::tabsize; 643 535 644 536 output << indent << "}"; … … 646 538 647 539 void CodeGenerator::visit( ExprStmt *exprStmt ) { 540 // I don't see why this check is necessary. 541 // If this starts to cause problems then put it back in, 542 // with an explanation 648 543 assert( exprStmt ); 649 // cast the top-level expression to void to reduce gcc warnings. 650 Expression * expr = new CastExpr( exprStmt->get_expr() ); 651 expr->accept( *this ); 652 output << ";"; 544 545 // if ( exprStmt != 0 ) { 546 exprStmt->get_expr()->accept( *this ); 547 output << ";" ; 548 // } // if 653 549 } 654 550 … … 693 589 switchStmt->get_condition()->accept( *this ); 694 590 output << " ) "; 695 591 696 592 output << "{" << std::endl; 697 593 cur_indent += CodeGenerator::tabsize; … … 713 609 } // if 714 610 output << ":\n"; 715 611 716 612 std::list<Statement *> sts = caseStmt->get_statements(); 717 613 … … 730 626 if ( ! branchStmt->get_target().empty() ) 731 627 output << "goto " << branchStmt->get_target(); 732 else { 628 else { 733 629 if ( branchStmt->get_computedTarget() != 0 ) { 734 630 output << "goto *"; … … 750 646 void CodeGenerator::visit( ReturnStmt *returnStmt ) { 751 647 output << "return "; 752 maybeAccept( returnStmt->get_expr(), *this ); 648 649 // xxx -- check for null expression; 650 if ( returnStmt->get_expr() ) { 651 returnStmt->get_expr()->accept( *this ); 652 } // if 753 653 output << ";"; 754 654 } 755 655 756 656 void CodeGenerator::visit( WhileStmt *whileStmt ) { 757 if ( whileStmt->get_isDoWhile() ) {657 if ( whileStmt->get_isDoWhile() ) 758 658 output << "do" ; 759 }else {659 else { 760 660 output << "while (" ; 761 661 whileStmt->get_condition()->accept( *this ); … … 777 677 778 678 void CodeGenerator::visit( ForStmt *forStmt ) { 779 // initialization is always hoisted, so don't 780 // bother doing anything with that 679 // initialization is always hoisted, so don't 680 // bother doing anything with that 781 681 output << "for (;"; 782 682 783 if ( forStmt->get_condition() != 0 ) {683 if ( forStmt->get_condition() != 0 ) 784 684 forStmt->get_condition()->accept( *this ); 785 }786 685 output << ";"; 787 686 788 if ( forStmt->get_increment() != 0 ) { 789 // cast the top-level expression to void to reduce gcc warnings. 790 Expression * expr = new CastExpr( forStmt->get_increment() ); 791 expr->accept( *this ); 792 } 687 if ( forStmt->get_increment() != 0 ) 688 forStmt->get_increment()->accept( *this ); 793 689 output << ") "; 794 690 … … 806 702 void CodeGenerator::visit( DeclStmt *declStmt ) { 807 703 declStmt->get_decl()->accept( *this ); 808 704 809 705 if ( doSemicolon( declStmt->get_decl() ) ) { 810 706 output << ";"; 811 707 } // if 708 } 709 710 std::string CodeGenerator::printLabels( std::list< Label > &l ) { 711 std::string str( "" ); 712 l.unique(); // assumes a sorted list. Why not use set? 713 714 for ( std::list< Label >::iterator i = l.begin(); i != l.end(); i++ ) 715 str += *i + ": "; 716 717 return str; 812 718 } 813 719 -
src/CodeGen/CodeGenerator.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // CodeGenerator.h -- 7 // CodeGenerator.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 9 13:15:58201613 // Update Count : 2 912 // Last Modified On : Wed Mar 2 17:32:24 2016 13 // Update Count : 28 14 14 // 15 15 … … 60 60 virtual void visit( MemberExpr *memberExpr ); 61 61 virtual void visit( VariableExpr *variableExpr ); 62 virtual void visit( ConstantExpr *constantExpr ); 62 virtual void visit( ConstantExpr *constantExpr ); 63 63 virtual void visit( SizeofExpr *sizeofExpr ); 64 64 virtual void visit( AlignofExpr *alignofExpr ); … … 85 85 virtual void visit( ForStmt * ); 86 86 virtual void visit( NullStmt * ); 87 virtual void visit( DeclStmt * ); 88 89 void genAttributes( std::list< Attribute * > & attributes ); 87 virtual void visit( DeclStmt * ); 90 88 91 89 template< class Iterator > void genCommaList( Iterator begin, Iterator end ); … … 94 92 Indenter(CodeGenerator &cg) : cg(cg) {} 95 93 CodeGenerator & cg; 96 std::ostream& operator()(std::ostream & os) const;94 std::ostream& operator()(std::ostream & os); 97 95 }; 98 99 struct LabelPrinter {100 LabelPrinter(CodeGenerator &cg) : cg(cg), labels( 0 ) {}101 LabelPrinter & operator()( std::list< Label > & l );102 CodeGenerator & cg;103 std::list< Label > * labels;104 };105 106 void extension( Expression *expr ) {107 if ( expr->get_extension() ) {108 output << "__extension__ ";109 } // if110 } // extension111 96 private: 112 97 … … 115 100 bool insideFunction; 116 101 std::ostream &output; 117 LabelPrinter printLabels;118 102 119 103 void printDesignators( std::list< Expression * > & ); 104 static std::string printLabels ( std::list < Label > & ); 120 105 void handleStorageClass( Declaration *decl ); 121 106 void handleAggregate( AggregateDecl *aggDecl ); … … 123 108 124 109 }; 125 110 126 111 template< class Iterator > 127 112 void CodeGenerator::genCommaList( Iterator begin, Iterator end ) { … … 134 119 } // for 135 120 } 136 121 137 122 inline bool doSemicolon( Declaration* decl ) { 138 123 if ( FunctionDecl* func = dynamic_cast< FunctionDecl* >( decl ) ) { -
src/CodeGen/FixNames.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FixNames.cc -- 7 // FixNames.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Mon Apr 11 15:38:10 201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 23:36:42 2015 13 13 // Update Count : 1 14 14 // … … 26 26 virtual void visit( ObjectDecl *objectDecl ); 27 27 virtual void visit( FunctionDecl *functionDecl ); 28 29 virtual void visit( CompoundStmt *compoundStmt );30 31 private:32 int scopeLevel = 1;33 34 void fixDWT( DeclarationWithType *dwt );35 28 }; 36 29 … … 40 33 } 41 34 42 void FixNames::fixDWT( DeclarationWithType *dwt ) {35 void fixDWT( DeclarationWithType *dwt ) { 43 36 if ( dwt->get_name() != "" ) { 44 37 if ( LinkageSpec::isDecoratable( dwt->get_linkage() ) ) { 45 38 dwt->set_mangleName( SymTab::Mangler::mangle( dwt ) ); 46 dwt->set_scopeLevel( scopeLevel );47 39 } // if 48 40 } // if … … 58 50 fixDWT( functionDecl ); 59 51 } 60 61 void FixNames::visit( CompoundStmt *compoundStmt ) {62 scopeLevel++;63 Visitor::visit( compoundStmt );64 scopeLevel--;65 }66 52 } // namespace CodeGen 67 53 -
src/CodeGen/OperatorTable.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // OperatorTable.cc -- 7 // OperatorTable.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : T hu Apr 14 16:48:27 201613 // Update Count : 911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 17:41:14 2015 13 // Update Count : 5 14 14 // 15 15 … … 21 21 const OperatorInfo tableValues[] = { 22 22 { "?[?]", "", "_operator_index", OT_INDEX }, 23 { "?{}", "=", "_constructor", OT_CTOR },24 { "^?{}", "", "_destructor", OT_DTOR },25 23 { "?()", "", "_operator_call", OT_CALL }, 26 24 { "?++", "++", "_operator_postincr", OT_POSTFIXASSIGN }, -
src/CodeGen/OperatorTable.h
rf80e0218 r1b5c81ed 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jun 24 16:17:57 201513 // Update Count : 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 16:09:27 2015 13 // Update Count : 3 14 14 // 15 15 … … 22 22 enum OperatorType { 23 23 OT_INDEX, 24 OT_CTOR,25 OT_DTOR,26 24 OT_CALL, 27 25 OT_PREFIX, -
src/Common/utility.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // utility.h -- 7 // utility.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 8 17:33:59 201613 // Update Count : 2212 // Last Modified On : Thu Jul 2 18:04:41 2015 13 // Update Count : 16 14 14 // 15 15 … … 33 33 } 34 34 35 template<typename T, typename U>36 struct maybeBuild_t {37 static T * doit( const U *orig ) {38 if ( orig ) {39 return orig->build();40 } else {41 return 0;42 } // if43 }44 };45 46 35 template< typename T, typename U > 47 36 static inline T * maybeBuild( const U *orig ) { 48 return maybeBuild_t<T,U>::doit(orig); 37 if ( orig ) { 38 return orig->build(); 39 } else { 40 return 0; 41 } // if 49 42 } 50 43 … … 69 62 os << std::string( indent, ' ' ); 70 63 (*i)->print( os, indent + 2 ); 71 // need an endl after each element because it's not easy to know when each individual item should end72 64 os << std::endl; 73 65 } // if … … 136 128 } 137 129 138 template < typename T > 130 template < typename T > 139 131 std::string toString ( T value ) { 140 132 std::ostringstream os; -
src/ControlStruct/LabelFixer.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // LabelFixer.cc -- 7 // LabelFixer.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 86 86 87 87 88 // sets the definition of the labelTable entry to be the provided 88 // sets the definition of the labelTable entry to be the provided 89 89 // statement for every label in the list parameter. Happens for every kind of statement 90 90 Label LabelFixer::setLabelsDef( std::list< Label > &llabel, Statement *definition ) { … … 95 95 96 96 for ( std::list< Label >::iterator i = llabel.begin(); i != llabel.end(); i++ ) { 97 Label & l = *i; 98 l.set_statement( definition ); // attach statement to the label to be used later 99 if ( labelTable.find( l ) == labelTable.end() ) { 97 if ( labelTable.find( *i ) == labelTable.end() ) { 100 98 // all labels on this statement need to use the same entry, so this should only be created once 101 99 // undefined and unused until now, add an entry 102 labelTable[ l] = e;103 } else if ( labelTable[ l]->defined() ) {100 labelTable[ *i ] = e; 101 } else if ( labelTable[ *i ]->defined() ) { 104 102 // defined twice, error 105 throw SemanticError( "Duplicate definition of label: " + l.get_name());103 throw SemanticError( "Duplicate definition of label: " + *i ); 106 104 } else { 107 105 // used previously, but undefined until now -> link with this entry 108 delete labelTable[ l];109 labelTable[ l] = e;106 delete labelTable[ *i ]; 107 labelTable[ *i ] = e; 110 108 } // if 111 109 } // for 112 110 113 // produce one of the labels attached to this statement to be 111 // produce one of the labels attached to this statement to be 114 112 // temporarily used as the canonical label 115 113 return labelTable[ llabel.front() ]->get_label(); 116 114 } 117 115 118 // A label was used, add it tothe table if it isn't already there116 // A label was used, add it ot the table if it isn't already there 119 117 template< typename UsageNode > 120 118 void LabelFixer::setLabelsUsg( Label orgValue, UsageNode *use ) { … … 132 130 for ( std::map< Label, Entry * >::iterator i = labelTable.begin(); i != labelTable.end(); ++i ) { 133 131 if ( ! i->second->defined() ) { 134 throw SemanticError( "Use of undefined label: " + i->first .get_name());132 throw SemanticError( "Use of undefined label: " + i->first ); 135 133 } 136 134 (*ret)[ i->first ] = i->second->get_definition(); -
src/ControlStruct/LabelFixer.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // LabelFixer.h -- 7 // LabelFixer.h -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 20 20 #include "SynTree/SynTree.h" 21 21 #include "SynTree/Visitor.h" 22 #include "SynTree/Label.h"23 22 #include "LabelGenerator.h" 23 24 24 #include <map> 25 25 … … 74 74 75 75 private: 76 Label label; 76 Label label; 77 77 Statement *definition; 78 78 }; 79 79 80 80 std::map < Label, Entry *> labelTable; 81 81 LabelGenerator *generator; -
src/ControlStruct/LabelGenerator.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // LabelGenerator.cc -- 7 // LabelGenerator.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 18 18 19 19 #include "LabelGenerator.h" 20 #include "SynTree/Label.h"21 #include "SynTree/Attribute.h"22 20 23 21 namespace ControlStruct { … … 35 33 os << "__L" << current++ << "__" << suffix; 36 34 std::string ret = os.str(); 37 Label l( ret ); 38 l.get_attributes().push_back( new Attribute("unused") ); 39 return l; 35 return Label( ret ); 40 36 } 41 37 } // namespace ControlStruct -
src/ControlStruct/MLEMutator.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // MLEMutator.cc -- 7 // MLEMutator.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 14 14 // 15 15 16 // NOTE: There are two known subtle differences from the code that uC++ 16 // NOTE: There are two known subtle differences from the code that uC++ 17 17 // generates for the same input 18 18 // -CFA puts the break label inside at the end of a switch, uC++ puts it after … … 27 27 #include "SynTree/Statement.h" 28 28 #include "SynTree/Expression.h" 29 #include "SynTree/Attribute.h"30 29 31 30 namespace ControlStruct { … … 34 33 targetTable = 0; 35 34 } 36 namespace { 37 Statement * isLoop( Statement * stmt ) { return dynamic_cast< WhileStmt * >( stmt ) ? stmt : dynamic_cast< ForStmt * >( stmt ) ? stmt : 0; } 38 } 39 40 // break labels have to come after the statement they break out of, 35 36 // break labels have to come after the statement they break out of, 41 37 // so mutate a statement, then if they inform us through the breakLabel field 42 // tha they need a place to jump to on a break statement, add the break label 38 // tha they need a place to jump to on a break statement, add the break label 43 39 // to the body of statements 44 40 void MLEMutator::fixBlock( std::list< Statement * > &kids ) { … … 48 44 if ( ! get_breakLabel().empty() ) { 49 45 std::list< Statement * >::iterator next = k+1; 50 std::list<Label> ls; ls.push_back( get_breakLabel() ); 51 kids.insert( next, new NullStmt( ls ) ); 46 if ( next == kids.end() ) { 47 std::list<Label> ls; ls.push_back( get_breakLabel() ); 48 kids.push_back( new NullStmt( ls ) ); 49 } else { 50 (*next)->get_labels().push_back( get_breakLabel() ); 51 } 52 52 53 set_breakLabel(""); 53 54 } // if … … 59 60 if ( labeledBlock ) { 60 61 Label brkLabel = generator->newLabel("blockBreak"); 61 enclosing ControlStructures.push_back( Entry( cmpndStmt, brkLabel ) );62 enclosingBlocks.push_back( Entry( cmpndStmt, brkLabel ) ); 62 63 } // if 63 64 … … 68 69 69 70 if ( labeledBlock ) { 70 assert( ! enclosing ControlStructures.empty() );71 if ( ! enclosing ControlStructures.back().useBreakExit().empty() ) {72 set_breakLabel( enclosing ControlStructures.back().useBreakExit() );71 assert( ! enclosingBlocks.empty() ); 72 if ( ! enclosingBlocks.back().useBreakExit().empty() ) { 73 set_breakLabel( enclosingBlocks.back().useBreakExit() ); 73 74 } 74 enclosing ControlStructures.pop_back();75 enclosingBlocks.pop_back(); 75 76 } // if 76 77 … … 80 81 template< typename LoopClass > 81 82 Statement *MLEMutator::handleLoopStmt( LoopClass *loopStmt ) { 82 // remember this as the most recent enclosing loop, then mutate 83 // remember this as the most recent enclosing loop, then mutate 83 84 // the body of the loop -- this will determine whether brkLabel 84 85 // and contLabel are used with branch statements … … 86 87 Label brkLabel = generator->newLabel("loopBreak"); 87 88 Label contLabel = generator->newLabel("loopContinue"); 88 enclosing ControlStructures.push_back( Entry( loopStmt, brkLabel, contLabel ) );89 enclosingLoops.push_back( Entry( loopStmt, brkLabel, contLabel ) ); 89 90 loopStmt->set_body ( loopStmt->get_body()->acceptMutator( *this ) ); 90 91 91 92 // sanity check that the enclosing loops have been popped correctly 92 Entry &e = enclosing ControlStructures.back();93 Entry &e = enclosingLoops.back(); 93 94 assert ( e == loopStmt ); 94 95 … … 96 97 // two labels, if they are used. 97 98 loopStmt->set_body( mutateLoop( loopStmt->get_body(), e ) ); 98 enclosing ControlStructures.pop_back();99 enclosingLoops.pop_back(); 99 100 100 101 return loopStmt; … … 110 111 template< typename SwitchClass > 111 112 Statement *MLEMutator::handleSwitchStmt( SwitchClass *switchStmt ) { 112 // generate a label for breaking out of a labeled switch 113 // generate a label for breaking out of a labeled switch 113 114 Label brkLabel = generator->newLabel("switchBreak"); 114 enclosing ControlStructures.push_back( Entry(switchStmt, brkLabel) );115 mutateAll( switchStmt->get_branches(), *this ); 116 117 Entry &e = enclosing ControlStructures.back();115 enclosingSwitches.push_back( Entry(switchStmt, brkLabel) ); 116 mutateAll( switchStmt->get_branches(), *this ); 117 118 Entry &e = enclosingSwitches.back(); 118 119 assert ( e == switchStmt ); 119 120 120 121 // only generate break label if labeled break is used 121 122 if (e.isBreakUsed()) { 122 // for the purposes of keeping switch statements uniform (i.e. all statements that are 123 // direct children of a switch should be CastStmts), append the exit label + break to the 123 // for the purposes of keeping switch statements uniform (i.e. all statements that are 124 // direct children of a switch should be CastStmts), append the exit label + break to the 124 125 // last case statement; create a default case if there are no cases 125 126 std::list< Statement * > &branches = switchStmt->get_branches(); … … 130 131 if ( CaseStmt * c = dynamic_cast< CaseStmt * >( branches.back() ) ) { 131 132 std::list<Label> temp; temp.push_back( brkLabel ); 132 c->get_statements().push_back( new BranchStmt( temp, Label(" brkLabel"), BranchStmt::Break ) );133 c->get_statements().push_back( new BranchStmt( temp, Label(""), BranchStmt::Break ) ); 133 134 } else assert(0); // as of this point, all branches of a switch are still CaseStmts 134 135 } 135 136 136 assert ( enclosing ControlStructures.back() == switchStmt );137 enclosing ControlStructures.pop_back();137 assert ( enclosingSwitches.back() == switchStmt ); 138 enclosingSwitches.pop_back(); 138 139 return switchStmt; 139 140 } … … 142 143 std::string originalTarget = branchStmt->get_originalTarget(); 143 144 144 std::list< Entry >::reverse_iterator targetEntry; 145 if ( branchStmt->get_type() == BranchStmt::Goto ) { 145 if ( branchStmt->get_type() == BranchStmt::Goto ) 146 146 return branchStmt; 147 } else if ( branchStmt->get_type() == BranchStmt::Continue) { 148 // continue target must bea loop149 if ( branchStmt->get_target() == "") {150 targetEntry = std::find_if( enclosingControlStructures.rbegin(), enclosingControlStructures.rend(), [](Entry &e) { return isLoop( e.get_controlStructure() ); } );151 } else {152 // labelled continue - lookup label in table ot find attached control structure153 t argetEntry = std::find( enclosingControlStructures.rbegin(), enclosingControlStructures.rend(), (*targetTable)[branchStmt->get_target()]);147 148 // test if continue target is a loop 149 if ( branchStmt->get_type() == BranchStmt::Continue) { 150 if ( enclosingLoops.empty() ) { 151 throw SemanticError( "'continue' outside a loop" ); 152 } else if ( branchStmt->get_target() != "" && std::find( enclosingLoops.begin(), enclosingLoops.end(), (*targetTable)[branchStmt->get_target()] ) == enclosingLoops.end() ) { 153 throw SemanticError( "'continue' target label must be an enclosing loop: " + originalTarget ); 154 154 } 155 if ( targetEntry == enclosingControlStructures.rend() || ! isLoop( targetEntry->get_controlStructure() ) ) { 156 throw SemanticError( "'continue' target must be an enclosing loop: " + originalTarget ); 157 } 158 } else if ( branchStmt->get_type() == BranchStmt::Break ) { 159 if ( enclosingControlStructures.empty() ) throw SemanticError( "'break' outside a loop, switch, or labelled block" ); 160 targetEntry = enclosingControlStructures.rbegin(); 161 } else { 162 assert( false ); 163 } 164 165 if ( branchStmt->get_target() != "" && targetTable->find( branchStmt->get_target() ) == targetTable->end() ) { 155 } 156 157 if ( branchStmt->get_type() == BranchStmt::Break && (enclosingLoops.empty() && enclosingSwitches.empty() && enclosingBlocks.empty() ) ) 158 throw SemanticError( "'break' outside a loop or switch" ); 159 160 if ( branchStmt->get_target() == "" ) return branchStmt; 161 162 if ( targetTable->find( branchStmt->get_target() ) == targetTable->end() ) 166 163 throw SemanticError("The label defined in the exit loop statement does not exist: " + originalTarget ); // shouldn't happen (since that's already checked) 167 } 164 165 std::list< Entry >::iterator check; 166 if ( ( check = std::find( enclosingLoops.begin(), enclosingLoops.end(), (*targetTable)[branchStmt->get_target()] ) ) == enclosingLoops.end() ) 167 // not in loop, checking if in block 168 if ( (check = std::find( enclosingBlocks.begin(), enclosingBlocks.end(), (*targetTable)[branchStmt->get_target()] )) == enclosingBlocks.end() ) 169 // neither in loop nor in block, checking if in switch/choose 170 if ( (check = std::find( enclosingSwitches.begin(), enclosingSwitches.end(), (*targetTable)[branchStmt->get_target()] )) == enclosingSwitches.end() ) 171 throw SemanticError("The target specified in the exit loop statement does not correspond to an enclosing control structure: " + originalTarget ); 172 173 // what about exiting innermost block or switch??? 174 if ( enclosingLoops.back() == (*check) ) 175 return branchStmt; // exit the innermost loop (labels unnecessary) 168 176 169 177 // branch error checks, get the appropriate label name and create a goto … … 171 179 switch ( branchStmt->get_type() ) { 172 180 case BranchStmt::Break: 173 assert( targetEntry->useBreakExit() != "");174 exitLabel = targetEntry->useBreakExit();181 assert( check->useBreakExit() != ""); 182 exitLabel = check->useBreakExit(); 175 183 break; 176 184 case BranchStmt::Continue: 177 assert( targetEntry->useContExit() != "");178 exitLabel = targetEntry->useContExit();185 assert( check->useContExit() != ""); 186 exitLabel = check->useContExit(); 179 187 break; 180 188 default: … … 182 190 } // switch 183 191 184 if ( branchStmt->get_target() == "" && branchStmt->get_type() != BranchStmt::Continue ) { 185 // unlabelled break/continue - can keep branch as break/continue for extra semantic information, but add 186 // exitLabel as its destination so that label passes can easily determine where the break/continue goes to 187 branchStmt->set_target( exitLabel ); 188 return branchStmt; 189 } else { 190 // labelled break/continue - can't easily emulate this with break and continue, so transform into a goto 191 delete branchStmt; 192 return new BranchStmt( std::list<Label>(), exitLabel, BranchStmt::Goto ); 193 } 192 return new BranchStmt( std::list<Label>(), exitLabel, BranchStmt::Goto ); 194 193 } 195 194 … … 207 206 // continue label goes in the body as the last statement 208 207 std::list< Label > labels; labels.push_back( e.useContExit() ); 209 newBody->get_kids().push_back( new NullStmt( labels ) ); 208 newBody->get_kids().push_back( new NullStmt( labels ) ); 210 209 } 211 210 212 211 if ( e.isBreakUsed() ) { 213 // break label goes after the loop -- it'll get set by the 212 // break label goes after the loop -- it'll get set by the 214 213 // outer mutator if we do this 215 set_breakLabel( e.useBreakExit() ); 214 set_breakLabel( e.useBreakExit() ); 216 215 } 217 216 … … 232 231 233 232 Statement *MLEMutator::mutate( ChooseStmt *switchStmt ) { 234 return handleSwitchStmt( switchStmt ); 233 return handleSwitchStmt( switchStmt ); 235 234 } 236 235 -
src/ControlStruct/MLEMutator.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // MLEMutator.h -- 7 // MLEMutator.h -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 23 23 #include "SynTree/SynTree.h" 24 24 #include "SynTree/Mutator.h" 25 #include "SynTree/Label.h"26 25 27 26 #include "LabelGenerator.h" … … 39 38 Statement *mutate( BranchStmt *branchStmt ) throw ( SemanticError ); 40 39 41 Statement *mutate( CaseStmt *caseStmt ); 40 Statement *mutate( CaseStmt *caseStmt ); 42 41 Statement *mutate( SwitchStmt *switchStmt ); 43 42 Statement *mutate( ChooseStmt *switchStmt ); … … 56 55 bool operator!=( const Statement *stmt ) { return ( loop != stmt ); } 57 56 58 bool operator==( const Entry &other ) { return ( loop == other.get_ controlStructure() ); }57 bool operator==( const Entry &other ) { return ( loop == other.get_loop() ); } 59 58 60 Statement *get_ controlStructure() const { return loop; }59 Statement *get_loop() const { return loop; } 61 60 62 61 Label useContExit() { contUsed = true; return contExit; } … … 73 72 74 73 std::map< Label, Statement * > *targetTable; 75 std::list< Entry > enclosing ControlStructures;74 std::list< Entry > enclosingBlocks, enclosingLoops, enclosingSwitches; 76 75 Label breakLabel; 77 76 LabelGenerator *generator; … … 80 79 Statement *handleLoopStmt( LoopClass *loopStmt ); 81 80 82 template< typename SwitchClass > 81 template< typename SwitchClass > 83 82 Statement *handleSwitchStmt( SwitchClass *switchStmt ); 84 83 -
src/ControlStruct/Mutate.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Mutate.cc -- 7 // Mutate.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 39 39 ForExprMutator formut; 40 40 41 // transform choose statements into switch statements42 ChooseMutator chmut;43 44 41 // normalizes label definitions and generates multi-level 45 42 // exit labels 46 43 LabelFixer lfix; 44 45 // transform choose statements into switch statements 46 ChooseMutator chmut; 47 47 48 48 // expand case ranges and turn fallthru into a null statement … … 53 53 54 54 mutateAll( translationUnit, formut ); 55 acceptAll( translationUnit, lfix ); 55 56 mutateAll( translationUnit, chmut ); 56 acceptAll( translationUnit, lfix );57 57 mutateAll( translationUnit, ranges ); 58 58 //mutateAll( translationUnit, exc ); -
src/GenPoly/Box.cc
rf80e0218 r1b5c81ed 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri May 13 14:51:21201613 // Update Count : 2 9511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Feb 5 16:45:07 2016 13 // Update Count : 286 14 14 // 15 15 … … 133 133 Value *lookup( Key *key, const std::list< TypeExpr* >& params ) const { 134 134 TypeList typeList( params ); 135 135 136 136 // scan scopes for matches to the key 137 137 for ( typename InnerMap::const_iterator insts = instantiations.find( key ); insts != instantiations.end(); insts = instantiations.findNext( insts, key ) ) { … … 160 160 virtual Declaration *mutate( UnionDecl *unionDecl ); 161 161 }; 162 162 163 163 /// Replaces polymorphic return types with out-parameters, replaces calls to polymorphic functions with adapter calls as needed, and adds appropriate type variables to the function call 164 164 class Pass1 : public PolyMutator { … … 197 197 void addInferredParams( ApplicationExpr *appExpr, FunctionType *functionType, std::list< Expression *>::iterator &arg, const TyVarMap &tyVars ); 198 198 /// Stores assignment operators from assertion list in local map of assignment operations 199 void find TypeOps( const std::list< TypeDecl *> &forall );199 void findAssignOps( const std::list< TypeDecl *> &forall ); 200 200 void passAdapters( ApplicationExpr *appExpr, FunctionType *functionType, const TyVarMap &exprTyVars ); 201 201 FunctionDecl *makeAdapter( FunctionType *adaptee, FunctionType *realType, const std::string &mangleName, const TyVarMap &tyVars ); … … 205 205 ObjectDecl *makeTemporary( Type *type ); 206 206 207 ScopedMap< std::string, DeclarationWithType* > assignOps; ///< Currently known type variable assignment operators 208 ScopedMap< std::string, DeclarationWithType* > ctorOps; ///< Currently known type variable constructors 209 ScopedMap< std::string, DeclarationWithType* > copyOps; ///< Currently known type variable copy constructors 210 ScopedMap< std::string, DeclarationWithType* > dtorOps; ///< Currently known type variable destructors 207 ScopedMap< std::string, DeclarationWithType *> assignOps; ///< Currently known type variable assignment operators 211 208 ResolvExpr::TypeMap< DeclarationWithType > scopedAssignOps; ///< Currently known assignment operators 212 ResolvExpr::TypeMap< DeclarationWithType > scopedCtorOps; ///< Currently known assignment operators213 ResolvExpr::TypeMap< DeclarationWithType > scopedCopyOps; ///< Currently known assignment operators214 ResolvExpr::TypeMap< DeclarationWithType > scopedDtorOps; ///< Currently known assignment operators215 209 ScopedMap< std::string, DeclarationWithType* > adapters; ///< Set of adapter functions in the current scope 216 210 217 211 DeclarationWithType *retval; 218 212 bool useRetval; … … 232 226 virtual Type *mutate( PointerType *pointerType ); 233 227 virtual Type *mutate( FunctionType *funcType ); 234 228 235 229 private: 236 230 void addAdapters( FunctionType *functionType ); … … 303 297 /// Exits the type-variable scope 304 298 void endTypeScope(); 305 299 306 300 ScopedSet< std::string > knownLayouts; ///< Set of generic type layouts known in the current scope, indexed by sizeofName 307 301 ScopedSet< std::string > knownOffsets; ///< Set of non-generic types for which the offset array exists in the current scope, indexed by offsetofName … … 357 351 PolyGenericCalculator polyCalculator; 358 352 Pass3 pass3; 359 353 360 354 layoutBuilder.mutateDeclarationList( translationUnit ); 361 355 mutateTranslationUnit/*All*/( translationUnit, pass1 ); … … 376 370 return functionDecl; 377 371 } 378 372 379 373 /// Get a list of type declarations that will affect a layout function 380 374 std::list< TypeDecl* > takeOtypeOnly( std::list< TypeDecl* > &decls ) { … … 386 380 } 387 381 } 388 382 389 383 return otypeDecls; 390 384 } … … 393 387 void addOtypeParams( FunctionType *layoutFnType, std::list< TypeDecl* > &otypeParams ) { 394 388 BasicType sizeAlignType( Type::Qualifiers(), BasicType::LongUnsignedInt ); 395 389 396 390 for ( std::list< TypeDecl* >::const_iterator param = otypeParams.begin(); param != otypeParams.end(); ++param ) { 397 391 TypeInstType paramType( Type::Qualifiers(), (*param)->get_name(), *param ); … … 450 444 return makeCond( ifCond, ifExpr ); 451 445 } 452 446 453 447 /// adds an expression to a compound statement 454 448 void addExpr( CompoundStmt *stmts, Expression *expr ) { … … 460 454 stmts->get_kids().push_back( stmt ); 461 455 } 462 456 463 457 Declaration *LayoutFunctionBuilder::mutate( StructDecl *structDecl ) { 464 458 // do not generate layout function for "empty" tag structs … … 473 467 BasicType *sizeAlignType = new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ); 474 468 PointerType *sizeAlignOutType = new PointerType( Type::Qualifiers(), sizeAlignType ); 475 469 476 470 ObjectDecl *sizeParam = new ObjectDecl( sizeofName( structDecl->get_name() ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType, 0 ); 477 471 layoutFnType->get_parameters().push_back( sizeParam ); … … 503 497 addStmt( layoutDecl->get_statements(), makeAlignTo( derefVar( sizeParam ), new AlignofExpr( memberType->clone() ) ) ); 504 498 } 505 499 506 500 // place current size in the current offset index 507 addExpr( layoutDecl->get_statements(), makeOp( "?=?", makeOp( "?[?]", new VariableExpr( offsetParam ), new ConstantExpr( Constant::from _ulong( n_members ) ) ),501 addExpr( layoutDecl->get_statements(), makeOp( "?=?", makeOp( "?[?]", new VariableExpr( offsetParam ), new ConstantExpr( Constant::from( n_members ) ) ), 508 502 derefVar( sizeParam ) ) ); 509 503 ++n_members; … … 511 505 // add member size to current size 512 506 addExpr( layoutDecl->get_statements(), makeOp( "?+=?", derefVar( sizeParam ), new SizeofExpr( memberType->clone() ) ) ); 513 507 514 508 // take max of member alignment and global alignment 515 509 addStmt( layoutDecl->get_statements(), makeAssignMax( derefVar( alignParam ), new AlignofExpr( memberType->clone() ) ) ); … … 521 515 return structDecl; 522 516 } 523 517 524 518 Declaration *LayoutFunctionBuilder::mutate( UnionDecl *unionDecl ) { 525 519 // do not generate layout function for "empty" tag unions 526 520 if ( unionDecl->get_members().empty() ) return unionDecl; 527 521 528 522 // get parameters that can change layout, exiting early if none 529 523 std::list< TypeDecl* > otypeParams = takeOtypeOnly( unionDecl->get_parameters() ); … … 534 528 BasicType *sizeAlignType = new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ); 535 529 PointerType *sizeAlignOutType = new PointerType( Type::Qualifiers(), sizeAlignType ); 536 530 537 531 ObjectDecl *sizeParam = new ObjectDecl( sizeofName( unionDecl->get_name() ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType, 0 ); 538 532 layoutFnType->get_parameters().push_back( sizeParam ); … … 551 545 assert( dwt ); 552 546 Type *memberType = dwt->get_type(); 553 547 554 548 // take max member size and global size 555 549 addStmt( layoutDecl->get_statements(), makeAssignMax( derefVar( sizeParam ), new SizeofExpr( memberType->clone() ) ) ); 556 550 557 551 // take max of member alignment and global alignment 558 552 addStmt( layoutDecl->get_statements(), makeAssignMax( derefVar( alignParam ), new AlignofExpr( memberType->clone() ) ) ); … … 564 558 return unionDecl; 565 559 } 566 560 567 561 ////////////////////////////////////////// Pass1 //////////////////////////////////////////////////// 568 562 … … 606 600 Pass1::Pass1() : useRetval( false ), tempNamer( "_temp" ) {} 607 601 608 /// Returns T if the given declaration is a function with parameter (T*) for some TypeInstType T, NULL otherwise 609 TypeInstType *isTypeInstPtrFn( DeclarationWithType *decl ) { 610 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 611 if ( funType->get_parameters().size() == 1 ) { 612 if ( PointerType *pointer = dynamic_cast< PointerType *>( funType->get_parameters().front()->get_type() ) ) { 613 if ( TypeInstType *refType = dynamic_cast< TypeInstType *>( pointer->get_base() ) ) { 614 return refType; 615 } // if 616 } // if 617 } // if 618 } // if 619 return 0; 620 } 621 622 /// Returns T if the given declaration is a function with parameters (T*, T) for some TypeInstType T, NULL otherwise 623 TypeInstType *isTypeInstPtrValFn( DeclarationWithType *decl ) { 624 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 625 if ( funType->get_parameters().size() == 2 ) { 626 if ( PointerType *pointer = dynamic_cast< PointerType *>( funType->get_parameters().front()->get_type() ) ) { 627 if ( TypeInstType *refType = dynamic_cast< TypeInstType *>( pointer->get_base() ) ) { 628 if ( TypeInstType *refType2 = dynamic_cast< TypeInstType *>( funType->get_parameters().back()->get_type() ) ) { 629 if ( refType->get_name() == refType2->get_name() ) { 630 return refType; 602 /// Returns T if the given declaration is (*?=?)(T *, T) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 603 TypeInstType *isTypeInstAssignment( DeclarationWithType *decl ) { 604 if ( decl->get_name() == "?=?" ) { 605 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 606 if ( funType->get_parameters().size() == 2 ) { 607 if ( PointerType *pointer = dynamic_cast< PointerType *>( funType->get_parameters().front()->get_type() ) ) { 608 if ( TypeInstType *refType = dynamic_cast< TypeInstType *>( pointer->get_base() ) ) { 609 if ( TypeInstType *refType2 = dynamic_cast< TypeInstType *>( funType->get_parameters().back()->get_type() ) ) { 610 if ( refType->get_name() == refType2->get_name() ) { 611 return refType; 612 } // if 631 613 } // if 632 614 } // if … … 638 620 } 639 621 640 /// Returns T if the given declaration is (*?=?)(T *, T) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 641 TypeInstType *isTypeInstAssignment( DeclarationWithType *decl ) { 642 return decl->get_name() == "?=?" ? isTypeInstPtrValFn( decl ) : 0; 643 } 644 645 /// Returns T if the given declaration is (*?{})(T *) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 646 TypeInstType *isTypeInstCtor( DeclarationWithType *decl ) { 647 return decl->get_name() == "?{}" ? isTypeInstPtrFn( decl ) : 0; 648 } 649 650 /// Returns T if the given declaration is (*?{})(T *, T) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 651 TypeInstType *isTypeInstCopy( DeclarationWithType *decl ) { 652 return decl->get_name() == "?{}" ? isTypeInstPtrValFn( decl ) : 0; 653 } 654 655 /// Returns T if the given declaration is (*^?{})(T *) for some TypeInstType T (return not checked, but maybe should be), NULL otherwise 656 TypeInstType *isTypeInstDtor( DeclarationWithType *decl ) { 657 return decl->get_name() == "^?{}" ? isTypeInstPtrFn( decl ) : 0; 658 } 659 660 /// Returns T if the given declaration is a function with parameters (T*, T) for some type T, where neither parameter is cv-qualified, 661 /// NULL otherwise 662 Type *isNoCvPtrFn( DeclarationWithType *decl ) { 663 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 664 if ( funType->get_parameters().size() == 1 ) { 665 Type::Qualifiers defaultQualifiers; 666 Type *paramType = funType->get_parameters().front()->get_type(); 667 if ( paramType->get_qualifiers() != defaultQualifiers ) return 0; 668 669 if ( PointerType *pointerType = dynamic_cast< PointerType* >( paramType ) ) { 670 Type *baseType = pointerType->get_base(); 671 if ( baseType->get_qualifiers() == defaultQualifiers ) { 672 return baseType; 622 /// returns T if the given declaration is: (*?=?)(T *, T) for some type T (return not checked, but maybe should be), NULL otherwise 623 /// Only picks assignments where neither parameter is cv-qualified 624 Type *isAssignment( DeclarationWithType *decl ) { 625 if ( decl->get_name() == "?=?" ) { 626 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 627 if ( funType->get_parameters().size() == 2 ) { 628 Type::Qualifiers defaultQualifiers; 629 Type *paramType1 = funType->get_parameters().front()->get_type(); 630 if ( paramType1->get_qualifiers() != defaultQualifiers ) return 0; 631 Type *paramType2 = funType->get_parameters().back()->get_type(); 632 if ( paramType2->get_qualifiers() != defaultQualifiers ) return 0; 633 634 if ( PointerType *pointerType = dynamic_cast< PointerType* >( paramType1 ) ) { 635 Type *baseType1 = pointerType->get_base(); 636 if ( baseType1->get_qualifiers() != defaultQualifiers ) return 0; 637 SymTab::Indexer dummy; 638 if ( ResolvExpr::typesCompatible( baseType1, paramType2, dummy ) ) { 639 return baseType1; 640 } // if 673 641 } // if 674 642 } // if … … 677 645 return 0; 678 646 } 679 680 /// Returns T if the given declaration is a function with parameters (T*, T) for some type T, where neither parameter is cv-qualified, 681 /// NULL otherwise 682 Type *isNoCvPtrValFn( DeclarationWithType *decl ) { 683 if ( FunctionType *funType = getFunctionType( decl->get_type() ) ) { 684 if ( funType->get_parameters().size() == 2 ) { 685 Type::Qualifiers defaultQualifiers; 686 Type *paramType1 = funType->get_parameters().front()->get_type(); 687 if ( paramType1->get_qualifiers() != defaultQualifiers ) return 0; 688 Type *paramType2 = funType->get_parameters().back()->get_type(); 689 if ( paramType2->get_qualifiers() != defaultQualifiers ) return 0; 690 691 if ( PointerType *pointerType = dynamic_cast< PointerType* >( paramType1 ) ) { 692 Type *baseType1 = pointerType->get_base(); 693 if ( baseType1->get_qualifiers() != defaultQualifiers ) return 0; 694 SymTab::Indexer dummy; 695 if ( ResolvExpr::typesCompatible( baseType1, paramType2, dummy ) ) { 696 return baseType1; 697 } // if 698 } // if 699 } // if 700 } // if 701 return 0; 702 } 703 704 /// returns T if the given declaration is: (*?=?)(T *, T) for some type T (return not checked, but maybe should be), NULL otherwise 705 /// Only picks assignments where neither parameter is cv-qualified 706 Type *isAssignment( DeclarationWithType *decl ) { 707 return decl->get_name() == "?=?" ? isNoCvPtrValFn( decl ) : 0; 708 } 709 710 /// returns T if the given declaration is: (*?{})(T *) for some type T, NULL otherwise 711 /// Only picks ctors where the parameter is not cv-qualified 712 Type *isCtor( DeclarationWithType *decl ) { 713 return decl->get_name() == "?{}" ? isNoCvPtrFn( decl ) : 0; 714 } 715 716 /// returns T if the given declaration is: (*?{})(T *, T) for some type T (return not checked, but maybe should be), NULL otherwise 717 /// Only picks copy constructors where neither parameter is cv-qualified 718 Type *isCopy( DeclarationWithType *decl ) { 719 return decl->get_name() == "?{}" ? isNoCvPtrValFn( decl ) : 0; 720 } 721 722 /// returns T if the given declaration is: (*?{})(T *) for some type T, NULL otherwise 723 /// Only picks ctors where the parameter is not cv-qualified 724 Type *isDtor( DeclarationWithType *decl ) { 725 return decl->get_name() == "^?{}" ? isNoCvPtrFn( decl ) : 0; 726 } 727 728 void Pass1::findTypeOps( const std::list< TypeDecl *> &forall ) { 647 648 void Pass1::findAssignOps( const std::list< TypeDecl *> &forall ) { 729 649 // what if a nested function uses an assignment operator? 730 650 // assignOps.clear(); … … 734 654 if ( TypeInstType *typeInst = isTypeInstAssignment( *assert ) ) { 735 655 assignOps[ typeInst->get_name() ] = *assert; 736 } else if ( TypeInstType *typeInst = isTypeInstCtor( *assert ) ) {737 ctorOps[ typeInst->get_name() ] = *assert;738 } else if ( TypeInstType *typeInst = isTypeInstCopy( *assert ) ) {739 copyOps[ typeInst->get_name() ] = *assert;740 } else if ( TypeInstType *typeInst = isTypeInstDtor( *assert ) ) {741 dtorOps[ typeInst->get_name() ] = *assert;742 656 } // if 743 657 } // for … … 747 661 DeclarationWithType *Pass1::mutate( FunctionDecl *functionDecl ) { 748 662 // if this is a assignment function, put it in the map for this scope 749 if ( Type *paramType = isAssignment( functionDecl ) ) { 750 if ( ! dynamic_cast< TypeInstType* >( paramType ) ) { 751 scopedAssignOps.insert( paramType, functionDecl ); 752 } 753 } else if ( Type *paramType = isCtor( functionDecl ) ) { 754 if ( ! dynamic_cast< TypeInstType* >( paramType ) ) { 755 scopedCtorOps.insert( paramType, functionDecl ); 756 } 757 } else if ( Type *paramType = isCopy( functionDecl ) ) { 758 if ( ! dynamic_cast< TypeInstType* >( paramType ) ) { 759 scopedCopyOps.insert( paramType, functionDecl ); 760 } 761 } else if ( Type *paramType = isDtor( functionDecl ) ) { 762 if ( ! dynamic_cast< TypeInstType* >( paramType ) ) { 763 scopedDtorOps.insert( paramType, functionDecl ); 663 if ( Type *assignedType = isAssignment( functionDecl ) ) { 664 if ( ! dynamic_cast< TypeInstType* >( assignedType ) ) { 665 scopedAssignOps.insert( assignedType, functionDecl ); 764 666 } 765 667 } … … 769 671 scopeTyVars.beginScope(); 770 672 assignOps.beginScope(); 771 ctorOps.beginScope();772 copyOps.beginScope();773 dtorOps.beginScope();774 775 673 DeclarationWithType *oldRetval = retval; 776 674 bool oldUseRetval = useRetval; … … 790 688 FunctionType *functionType = functionDecl->get_functionType(); 791 689 makeTyVarMap( functionDecl->get_functionType(), scopeTyVars ); 792 find TypeOps( functionDecl->get_functionType()->get_forall() );690 findAssignOps( functionDecl->get_functionType()->get_forall() ); 793 691 794 692 std::list< DeclarationWithType *> ¶mList = functionType->get_parameters(); … … 815 713 scopeTyVars.endScope(); 816 714 assignOps.endScope(); 817 ctorOps.endScope();818 copyOps.endScope();819 dtorOps.endScope();820 715 retval = oldRetval; 821 716 useRetval = oldUseRetval; … … 889 784 arg++; 890 785 } else { 891 /// xxx - should this be an assertion? 892 throw SemanticError( "unbound type variable: " + tyParm->first + " in application ", appExpr ); 786 throw SemanticError( "unbound type variable in application ", appExpr ); 893 787 } // if 894 788 } // if … … 909 803 passArgTypeVars( appExpr, polyRetType, concRetType, arg, exprTyVars, seenTypes ); 910 804 } 911 805 912 806 // add type information args for presently unseen types in parameter list 913 807 for ( ; fnParm != funcType->get_parameters().end() && fnArg != appExpr->get_args().end(); ++fnParm, ++fnArg ) { … … 988 882 assert( env ); 989 883 Type *concrete = replaceWithConcrete( appExpr, polyType ); 990 // add out-parameter for return value 884 // add out-parameter for return value 991 885 return addRetParam( appExpr, function, concrete, arg ); 992 886 } … … 1016 910 } else if ( arg->get_results().front()->get_isLvalue() ) { 1017 911 // VariableExpr and MemberExpr are lvalues; need to check this isn't coming from the second arg of a comma expression though (not an lvalue) 1018 // xxx - need to test that this code is still reachable1019 912 if ( CommaExpr *commaArg = dynamic_cast< CommaExpr* >( arg ) ) { 1020 913 commaArg->set_arg2( new AddressExpr( commaArg->get_arg2() ) ); … … 1142 1035 std::list< DeclarationWithType *>::iterator param = adapterType->get_parameters().begin(); 1143 1036 std::list< DeclarationWithType *>::iterator realParam = adaptee->get_parameters().begin(); 1144 param++; // skip adaptee parameter in the adapter type1037 param++; // skip adaptee parameter 1145 1038 if ( realType->get_returnVals().empty() ) { 1146 // void return1147 1039 addAdapterParams( adapteeApp, arg, param, adapterType->get_parameters().end(), realParam, tyVars ); 1148 1040 bodyStmt = new ExprStmt( noLabels, adapteeApp ); 1149 1041 } else if ( isPolyType( adaptee->get_returnVals().front()->get_type(), tyVars ) ) { 1150 // return type T1151 1042 if ( (*param)->get_name() == "" ) { 1152 1043 (*param)->set_name( "_ret" ); … … 1400 1291 } else if ( needsAdapter( function, scopeTyVars ) ) { 1401 1292 // std::cerr << "needs adapter: "; 1402 // printTyVarMap( std::cerr, scopeTyVars ); 1403 // std::cerr << *env << std::endl; 1293 // for ( TyVarMap::iterator i = scopeTyVars.begin(); i != scopeTyVars.end(); ++i ) { 1294 // std::cerr << i->first << " "; 1295 // } 1296 // std::cerr << "\n"; 1404 1297 // change the application so it calls the adapter rather than the passed function 1405 1298 ret = applyAdapter( appExpr, function, arg, scopeTyVars ); … … 1452 1345 } // if 1453 1346 } // if 1454 // isPolyType check needs to happen before mutating addrExpr arg, so pull it forward1455 // out of the if condition.1456 bool polytype = isPolyType( addrExpr->get_arg()->get_results().front(), scopeTyVars, env );1457 1347 addrExpr->set_arg( mutateExpression( addrExpr->get_arg() ) ); 1458 if ( polytype|| needs ) {1348 if ( isPolyType( addrExpr->get_arg()->get_results().front(), scopeTyVars, env ) || needs ) { 1459 1349 Expression *ret = addrExpr->get_arg(); 1460 1350 delete ret->get_results().front(); … … 1475 1365 functionObj->set_mangleName( functionDecl->get_mangleName() ); 1476 1366 return new VariableExpr( functionObj ); 1477 }1478 1479 /// Finds the operation declaration for a given type in one of the two maps1480 DeclarationWithType* findOpForType( Type *formalType, const ScopedMap< std::string, DeclarationWithType* >& ops, ResolvExpr::TypeMap< DeclarationWithType >& scopedOps ) {1481 if ( TypeInstType *formalTypeInstType = dynamic_cast< TypeInstType* >( formalType ) ) {1482 ScopedMap< std::string, DeclarationWithType *>::const_iterator opIt = ops.find( formalTypeInstType->get_name() );1483 return opIt == ops.end() ? 0 : opIt->second;1484 } else {1485 return scopedOps.find( formalType );1486 }1487 }1488 1489 /// Adds an assertion parameter to the application expression for the actual assertion declaration valued with the assert op1490 void addAssertionFor( ApplicationExpr *appExpr, DeclarationWithType *actualDecl, DeclarationWithType *assertOp ) {1491 appExpr->get_inferParams()[ actualDecl->get_uniqueId() ]1492 = ParamEntry( assertOp->get_uniqueId(), assertOp->get_type()->clone(), actualDecl->get_type()->clone(), wrapFunctionDecl( assertOp ) );1493 1367 } 1494 1368 … … 1539 1413 assignExpr->get_env()->add( (*forallIt)->get_name(), formalType ); 1540 1414 1541 // skip non-otype parameters(ftype/dtype)1415 // skip types with no assign op (ftype/dtype) 1542 1416 if ( (*forallIt)->get_kind() != TypeDecl::Any ) continue; 1543 1417 1544 // find otype operators for formal type 1545 DeclarationWithType *assertAssign = findOpForType( formalType, assignOps, scopedAssignOps ); 1546 if ( ! assertAssign ) throw SemanticError( "No assignment operation found for ", formalType ); 1547 1548 DeclarationWithType *assertCtor = findOpForType( formalType, ctorOps, scopedCtorOps ); 1549 if ( ! assertCtor ) throw SemanticError( "No default constructor found for ", formalType ); 1550 1551 DeclarationWithType *assertCopy = findOpForType( formalType, copyOps, scopedCopyOps ); 1552 if ( ! assertCopy ) throw SemanticError( "No copy constructor found for ", formalType ); 1553 1554 DeclarationWithType *assertDtor = findOpForType( formalType, dtorOps, scopedDtorOps ); 1555 if ( ! assertDtor ) throw SemanticError( "No destructor found for ", formalType ); 1556 1557 // add inferred parameters for otype operators to assignment expression 1558 // NOTE: Code here assumes that first four assertions are assign op, ctor, copy ctor, dtor, in that order 1418 // find assignment operator for formal type 1419 DeclarationWithType *assertAssign = 0; 1420 if ( TypeInstType *formalTypeInstType = dynamic_cast< TypeInstType* >( formalType ) ) { 1421 ScopedMap< std::string, DeclarationWithType *>::const_iterator assertAssignIt = assignOps.find( formalTypeInstType->get_name() ); 1422 if ( assertAssignIt == assignOps.end() ) { 1423 throw SemanticError( "No assignment operation found for ", formalTypeInstType ); 1424 } 1425 assertAssign = assertAssignIt->second; 1426 } else { 1427 assertAssign = scopedAssignOps.find( formalType ); 1428 if ( ! assertAssign ) { 1429 throw SemanticError( "No assignment operation found for ", formalType ); 1430 } 1431 } 1432 1433 // add inferred parameter for field assignment operator to assignment expression 1559 1434 std::list< DeclarationWithType* > &asserts = (*forallIt)->get_assertions(); 1560 assert( asserts.size() >= 4 && "Type param needs otype operator assertions" ); 1561 1562 std::list< DeclarationWithType* >::iterator actualIt = asserts.begin(); 1563 addAssertionFor( assignExpr, *actualIt, assertAssign ); 1564 ++actualIt; 1565 addAssertionFor( assignExpr, *actualIt, assertCtor ); 1566 ++actualIt; 1567 addAssertionFor( assignExpr, *actualIt, assertCopy ); 1568 ++actualIt; 1569 addAssertionFor( assignExpr, *actualIt, assertDtor ); 1570 1571 //DeclarationWithType *actualDecl = asserts.front(); 1572 //assignExpr->get_inferParams()[ actualDecl->get_uniqueId() ] 1573 // = ParamEntry( assertAssign->get_uniqueId(), assertAssign->get_type()->clone(), actualDecl->get_type()->clone(), wrapFunctionDecl( assertAssign ) ); 1435 assert( ! asserts.empty() && "Type param needs assignment operator assertion" ); 1436 DeclarationWithType *actualDecl = asserts.front(); 1437 assignExpr->get_inferParams()[ actualDecl->get_uniqueId() ] 1438 = ParamEntry( assertAssign->get_uniqueId(), assertAssign->get_type()->clone(), actualDecl->get_type()->clone(), wrapFunctionDecl( assertAssign ) ); 1574 1439 } 1575 1440 } … … 1617 1482 adapters.beginScope(); 1618 1483 scopedAssignOps.beginScope(); 1619 scopedCtorOps.beginScope();1620 scopedCopyOps.beginScope();1621 scopedDtorOps.beginScope();1622 1484 } 1623 1485 … … 1625 1487 adapters.endScope(); 1626 1488 scopedAssignOps.endScope(); 1627 scopedCtorOps.endScope();1628 scopedCopyOps.endScope();1629 scopedDtorOps.endScope();1630 1489 } 1631 1490 … … 2027 1886 } 2028 1887 } 2029 1888 2030 1889 Type *ret = Mutator::mutate( funcType ); 2031 1890 … … 2046 1905 2047 1906 std::list<Expression*> designators; 2048 objectDecl->set_init( new SingleInit( alloc, designators , false ) ); // not constructed1907 objectDecl->set_init( new SingleInit( alloc, designators ) ); 2049 1908 } 2050 1909 } … … 2083 1942 UntypedExpr *derefExpr = new UntypedExpr( new NameExpr( "*?" ) ); 2084 1943 derefExpr->get_args().push_back( derefdVar ); 2085 // xxx - should set results on derefExpr2086 1944 derefdVar = derefExpr; 2087 1945 } 2088 1946 return derefdVar; 2089 1947 } 2090 1948 2091 1949 Expression *PolyGenericCalculator::mutate( MemberExpr *memberExpr ) { 2092 1950 // mutate, exiting early if no longer MemberExpr … … 2180 2038 2181 2039 bool PolyGenericCalculator::findGeneric( Type *ty ) { 2182 ty = replaceTypeInst( ty, env );2183 2184 2040 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType* >( ty ) ) { 2041 // duplicate logic from isPolyType() 2042 if ( env ) { 2043 if ( Type *newType = env->lookup( typeInst->get_name() ) ) { 2044 return findGeneric( newType ); 2045 } // if 2046 } // if 2185 2047 if ( scopeTyVars.find( typeInst->get_name() ) != scopeTyVars.end() ) { 2186 2048 // NOTE assumes here that getting put in the scopeTyVars included having the layout variables set … … 2204 2066 if ( n_members == 0 ) { 2205 2067 // all empty structs have the same layout - size 1, align 1 2206 makeVar( sizeofName( typeName ), layoutType, new SingleInit( new ConstantExpr( Constant::from _ulong( (unsigned long)1 ) ) ) );2207 makeVar( alignofName( typeName ), layoutType->clone(), new SingleInit( new ConstantExpr( Constant::from _ulong( (unsigned long)1 ) ) ) );2068 makeVar( sizeofName( typeName ), layoutType, new SingleInit( new ConstantExpr( Constant::from( (unsigned long)1 ) ) ) ); 2069 makeVar( alignofName( typeName ), layoutType->clone(), new SingleInit( new ConstantExpr( Constant::from( (unsigned long)1 ) ) ) ); 2208 2070 // NOTE zero-length arrays are forbidden in C, so empty structs have no offsetof array 2209 2071 } else { 2210 2072 ObjectDecl *sizeVar = makeVar( sizeofName( typeName ), layoutType ); 2211 2073 ObjectDecl *alignVar = makeVar( alignofName( typeName ), layoutType->clone() ); 2212 ObjectDecl *offsetVar = makeVar( offsetofName( typeName ), new ArrayType( Type::Qualifiers(), layoutType->clone(), new ConstantExpr( Constant::from _int( n_members ) ), false, false ) );2074 ObjectDecl *offsetVar = makeVar( offsetofName( typeName ), new ArrayType( Type::Qualifiers(), layoutType->clone(), new ConstantExpr( Constant::from( n_members ) ), false, false ) ); 2213 2075 2214 2076 // generate call to layout function … … 2282 2144 Type *ty = offsetofExpr->get_type(); 2283 2145 if ( ! findGeneric( ty ) ) return offsetofExpr; 2284 2146 2285 2147 if ( StructInstType *structType = dynamic_cast< StructInstType* >( ty ) ) { 2286 2148 // replace offsetof expression by index into offset array … … 2329 2191 2330 2192 // build the offset array and replace the pack with a reference to it 2331 ObjectDecl *offsetArray = makeVar( offsetName, new ArrayType( Type::Qualifiers(), offsetType, new ConstantExpr( Constant::from _ulong( baseMembers.size() ) ), false, false ),2193 ObjectDecl *offsetArray = makeVar( offsetName, new ArrayType( Type::Qualifiers(), offsetType, new ConstantExpr( Constant::from( baseMembers.size() ) ), false, false ), 2332 2194 new ListInit( inits ) ); 2333 2195 ret = new VariableExpr( offsetArray ); -
src/GenPoly/CopyParams.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // CopyParams.cc -- 7 // CopyParams.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz11 // Last Modified By : Peter A. Buhr 12 12 // Last Modified On : Tue May 19 07:33:31 2015 13 13 // Update Count : 1 … … 29 29 public: 30 30 CopyParams(); 31 31 32 32 virtual void visit( FunctionDecl *funcDecl ); 33 33 virtual void visit( AddressExpr *addrExpr ); … … 50 50 if ( funcDecl->get_statements() ) { 51 51 funcDecl->get_statements()->accept( *this ); 52 52 53 53 if ( ! modVars.empty() ) { 54 54 std::map< std::string, DeclarationWithType* > assignOps; … … 57 57 if ( (*tyVar)->get_kind() == TypeDecl::Any ) { 58 58 assert( !(*tyVar)->get_assertions().empty() ); 59 assert( (*tyVar)->get_assertions().front()->get_name() == "?=?" );60 59 assignOps[ (*tyVar)->get_name() ] = (*tyVar)->get_assertions().front(); 61 60 } // if -
src/GenPoly/GenPoly.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // GenPoly.cc -- 7 // GenPoly.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed May 25 13:39:21 201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 15 16:11:18 2015 13 13 // Update Count : 13 14 14 // … … 66 66 } 67 67 68 Type* replaceTypeInst( Type* type, const TypeSubstitution* env ) {69 if ( ! env ) return type;70 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType* >( type ) ) {71 Type *newType = env->lookup( typeInst->get_name() );72 if ( newType ) return newType;73 }74 return type;75 }76 77 68 Type *isPolyType( Type *type, const TypeSubstitution *env ) { 78 type = replaceTypeInst( type, env );79 80 69 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType * >( type ) ) { 70 if ( env ) { 71 if ( Type *newType = env->lookup( typeInst->get_name() ) ) { 72 return isPolyType( newType, env ); 73 } // if 74 } // if 81 75 return type; 82 76 } else if ( StructInstType *structType = dynamic_cast< StructInstType* >( type ) ) { … … 87 81 return 0; 88 82 } 89 83 90 84 Type *isPolyType( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env ) { 91 type = replaceTypeInst( type, env );92 93 85 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType * >( type ) ) { 86 if ( env ) { 87 if ( Type *newType = env->lookup( typeInst->get_name() ) ) { 88 return isPolyType( newType, tyVars, env ); 89 } // if 90 } // if 94 91 if ( tyVars.find( typeInst->get_name() ) != tyVars.end() ) { 95 92 return type; … … 104 101 105 102 Type *isPolyPtr( Type *type, const TypeSubstitution *env ) { 106 type = replaceTypeInst( type, env );107 108 103 if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) { 109 104 return isPolyType( ptr->get_base(), env ); 110 } 111 return 0; 112 } 113 105 } else if ( env ) { 106 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType *>( type ) ) { 107 if ( Type *newType = env->lookup( typeInst->get_name() ) ) { 108 return isPolyPtr( newType, env ); 109 } // if 110 } // if 111 } // if 112 return 0; 113 } 114 114 115 Type *isPolyPtr( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env ) { 115 type = replaceTypeInst( type, env );116 117 116 if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) { 118 117 return isPolyType( ptr->get_base(), tyVars, env ); 119 } 118 } else if ( env ) { 119 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType *>( type ) ) { 120 if ( Type *newType = env->lookup( typeInst->get_name() ) ) { 121 return isPolyPtr( newType, tyVars, env ); 122 } // if 123 } // if 124 } // if 120 125 return 0; 121 126 } … … 127 132 128 133 while ( true ) { 129 type = replaceTypeInst( type, env );130 131 134 if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) { 132 135 type = ptr->get_base(); 133 136 ++(*levels); 137 } else if ( env ) { 138 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType *>( type ) ) { 139 if ( Type *newType = env->lookup( typeInst->get_name() ) ) { 140 type = newType; 141 } else break; 142 } else break; 134 143 } else break; 135 144 } … … 137 146 return isPolyType( type, env ); 138 147 } 139 148 140 149 Type * hasPolyBase( Type *type, const TyVarMap &tyVars, int *levels, const TypeSubstitution *env ) { 141 150 int dummy; … … 144 153 145 154 while ( true ) { 146 type = replaceTypeInst( type, env );147 148 155 if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) { 149 156 type = ptr->get_base(); 150 157 ++(*levels); 158 } else if ( env ) { 159 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType *>( type ) ) { 160 if ( Type *newType = env->lookup( typeInst->get_name() ) ) { 161 type = newType; 162 } else break; 163 } else break; 151 164 } else break; 152 165 } … … 172 185 if ( VariableExpr *varExpr = dynamic_cast< VariableExpr* >( expr ) ) { 173 186 return varExpr; 174 } else if ( MemberExpr *memberExpr = dynamic_cast< MemberExpr* >( expr ) ) {175 expr = memberExpr->get_aggregate();176 187 } else if ( AddressExpr *addressExpr = dynamic_cast< AddressExpr* >( expr ) ) { 177 188 expr = addressExpr->get_arg(); … … 181 192 if ( ! fn || fn->get_name() != std::string("*?") ) return 0; 182 193 expr = *untypedExpr->begin_args(); 183 } else if ( CommaExpr *commaExpr = dynamic_cast< CommaExpr* >( expr ) ) {184 // copy constructors insert comma exprs, look at second argument which contains the variable185 expr = commaExpr->get_arg2();186 continue;187 194 } else break; 188 195 … … 202 209 } 203 210 } 204 211 205 212 void printTyVarMap( std::ostream &os, const TyVarMap &tyVarMap ) { 206 213 for ( TyVarMap::const_iterator i = tyVarMap.begin(); i != tyVarMap.end(); ++i ) { -
src/GenPoly/GenPoly.h
rf80e0218 r1b5c81ed 31 31 namespace GenPoly { 32 32 typedef ErasableScopedMap< std::string, TypeDecl::Kind > TyVarMap; 33 33 34 34 /// A function needs an adapter if it returns a polymorphic value or if any of its 35 35 /// parameters have polymorphic type … … 39 39 ReferenceToType *isPolyRet( FunctionType *function ); 40 40 41 /// Replaces a TypeInstType by its referrent in the environment, if applicable42 Type* replaceTypeInst( Type* type, const TypeSubstitution* env );43 44 41 /// returns polymorphic type if is polymorphic type, NULL otherwise; will look up substitution in env if provided 45 42 Type *isPolyType( Type *type, const TypeSubstitution *env = 0 ); -
src/GenPoly/PolyMutator.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // PolyMutator.cc -- 7 // PolyMutator.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Mon May 02 14:50:58 201612 // Last Modified On : Fri Aug 14 15:28:50 2015 13 13 // Update Count : 11 14 14 // … … 63 63 env = expr->get_env(); 64 64 } 65 // xxx - should env be cloned (or moved) onto the result of the mutate?66 65 return expr->acceptMutator( *this ); 67 66 } else { … … 145 144 return untypedExpr; 146 145 } 147 148 146 147 149 148 Initializer *PolyMutator::mutate( SingleInit *singleInit ) { 150 149 singleInit->set_value( mutateExpression( singleInit->get_value() ) ); -
src/GenPoly/ScopedMap.h
rf80e0218 r1b5c81ed 90 90 return next_valid(); 91 91 } 92 iterator operator++ (int) { iterator tmp = *this; ++(*this); return tmp; }92 iterator& operator++ (int) { iterator tmp = *this; ++(*this); return tmp; } 93 93 94 94 iterator& operator-- () { … … 101 101 return prev_valid(); 102 102 } 103 iterator operator-- (int) { iterator tmp = *this; --(*this); return tmp; }103 iterator& operator-- (int) { iterator tmp = *this; --(*this); return tmp; } 104 104 105 105 bool operator== (const iterator &that) { … … 166 166 return next_valid(); 167 167 } 168 const_iterator operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; }168 const_iterator& operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; } 169 169 170 170 const_iterator& operator-- () { … … 177 177 return prev_valid(); 178 178 } 179 const_iterator operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; }179 const_iterator& operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; } 180 180 181 181 bool operator== (const const_iterator &that) { -
src/GenPoly/ScopedSet.h
rf80e0218 r1b5c81ed 87 87 return next_valid(); 88 88 } 89 iterator operator++ (int) { iterator tmp = *this; ++(*this); return tmp; }89 iterator& operator++ (int) { iterator tmp = *this; ++(*this); return tmp; } 90 90 91 91 iterator& operator-- () { … … 98 98 return prev_valid(); 99 99 } 100 iterator operator-- (int) { iterator tmp = *this; --(*this); return tmp; }100 iterator& operator-- (int) { iterator tmp = *this; --(*this); return tmp; } 101 101 102 102 bool operator== (const iterator &that) { … … 163 163 return next_valid(); 164 164 } 165 const_iterator operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; }165 const_iterator& operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; } 166 166 167 167 const_iterator& operator-- () { … … 174 174 return prev_valid(); 175 175 } 176 const_iterator operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; }176 const_iterator& operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; } 177 177 178 178 bool operator== (const const_iterator &that) { -
src/GenPoly/Specialize.cc
rf80e0218 r1b5c81ed 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Apr 28 15:17:45201613 // Update Count : 2412 // Last Modified On : Wed Jan 20 12:40:33 2016 13 // Update Count : 18 14 14 // 15 15 … … 25 25 #include "SynTree/Statement.h" 26 26 #include "SynTree/Type.h" 27 #include "SynTree/Attribute.h"28 27 #include "SynTree/TypeSubstitution.h" 29 28 #include "SynTree/Mutator.h" … … 42 41 virtual Expression * mutate( AddressExpr *castExpr ); 43 42 virtual Expression * mutate( CastExpr *castExpr ); 44 //virtual Expression * mutate( LogicalExpr *logicalExpr );45 //virtual Expression * mutate( ConditionalExpr *conditionalExpr );46 //virtual Expression * mutate( CommaExpr *commaExpr );43 virtual Expression * mutate( LogicalExpr *logicalExpr ); 44 virtual Expression * mutate( ConditionalExpr *conditionalExpr ); 45 virtual Expression * mutate( CommaExpr *commaExpr ); 47 46 48 47 private: … … 99 98 } // if 100 99 // create new thunk with same signature as formal type (C linkage, empty body) 101 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( noLabels), false, false );100 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( std::list< std::string >() ), false, false ); 102 101 thunkFunc->fixUniqueId(); 103 104 // thunks may be generated and not used - silence warning with attribute105 thunkFunc->get_attributes().push_back( new Attribute( "unused" ) );106 102 107 103 // thread thunk parameters into call to actual function, naming thunk parameters as we go … … 146 142 147 143 Expression * Specialize::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) { 148 assert( ! actual->get_results().empty() ); // using front, should have this assert144 assert( ! actual->get_results().empty() ); 149 145 if ( needsSpecialization( formalType, actual->get_results().front(), env ) ) { 150 146 FunctionType *funType; … … 216 212 } 217 213 218 // Removing these for now. Richard put these in for some reason, but it's not clear why. 219 // In particular, copy constructors produce a comma expression, and with this code the parts 220 // of that comma expression are not specialized, which causes problems. 221 222 // Expression * Specialize::mutate( LogicalExpr *logicalExpr ) { 223 // return logicalExpr; 224 // } 225 226 // Expression * Specialize::mutate( ConditionalExpr *condExpr ) { 227 // return condExpr; 228 // } 229 230 // Expression * Specialize::mutate( CommaExpr *commaExpr ) { 231 // return commaExpr; 232 // } 214 Expression * Specialize::mutate( LogicalExpr *logicalExpr ) { 215 return logicalExpr; 216 } 217 218 Expression * Specialize::mutate( ConditionalExpr *condExpr ) { 219 return condExpr; 220 } 221 222 Expression * Specialize::mutate( CommaExpr *commaExpr ) { 223 return commaExpr; 224 } 233 225 } // namespace GenPoly 234 226 -
src/InitTweak/InitModel.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // InitModel.cc -- 7 // InitModel.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : T hu Jan 07 13:38:46 201613 // Update Count : 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 16:37:08 2015 13 // Update Count : 1 14 14 // 15 15 … … 198 198 assert(init == 0 && single != 0); 199 199 std::list< Expression * > empty; 200 init = new SingleInit( single->get_expr(), empty , false ); // cannot be constructed200 init = new SingleInit( single->get_expr(), empty ); 201 201 return; 202 202 } … … 214 214 } // if 215 215 216 std::list< Expression * > desig; 217 init = new ListInit( contents, desig, false ); // cannot be constructed 216 init = new ListInit( contents ); 218 217 return; 219 218 } -
src/InitTweak/module.mk
rf80e0218 r1b5c81ed 11 11 ## Created On : Mon Jun 1 17:49:17 2015 12 12 ## Last Modified By : Rob Schluntz 13 ## Last Modified On : Fri May 13 11:36:24201614 ## Update Count : 313 ## Last Modified On : Mon Jan 11 14:40:16 2016 14 ## Update Count : 2 15 15 ############################################################################### 16 16 17 SRC += InitTweak/GenInit.cc \ 18 InitTweak/FixInit.cc \ 19 InitTweak/FixGlobalInit.cc \ 20 InitTweak/InitTweak.cc 17 SRC += InitTweak/RemoveInit.cc 21 18 -
src/MakeLibCfa.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // MakeLibCfa.cc -- 7 // MakeLibCfa.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sat May 16 10:33:33 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri Apr 22 13:54:15 201613 // Update Count : 4014 // 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 26 16:52:59 2015 13 // Update Count : 14 14 // 15 15 16 16 #include "MakeLibCfa.h" … … 29 29 void visit( FunctionDecl* funcDecl ); 30 30 void visit( ObjectDecl* objDecl ); 31 31 32 32 std::list< Declaration* > &get_newDecls() { return newDecls; } 33 33 private: … … 43 43 void MakeLibCfa::visit( FunctionDecl* origFuncDecl ) { 44 44 if ( origFuncDecl->get_linkage() != LinkageSpec::Intrinsic ) return; 45 if ( origFuncDecl->get_statements() ) return; 46 45 47 46 FunctionDecl *funcDecl = origFuncDecl->clone(); 48 47 CodeGen::OperatorInfo opInfo; … … 55 54 assert( param != funcDecl->get_functionType()->get_parameters().end() ); 56 55 57 for ( ; param != funcDecl->get_functionType()->get_parameters().end(); ++param ) { 58 if ( (*param)->get_name() == "" ) { 59 (*param)->set_name( paramNamer.newName() ); 60 (*param)->set_linkage( LinkageSpec::C ); 61 } 62 newExpr->get_args().push_back( new VariableExpr( *param ) ); 63 } // for 64 65 funcDecl->set_statements( new CompoundStmt( std::list< Label >() ) ); 66 newDecls.push_back( funcDecl ); 56 if ( (*param)->get_name() == "" ) { 57 (*param)->set_name( paramNamer.newName() ); 58 (*param)->set_linkage( LinkageSpec::C ); 59 } // if 67 60 68 61 switch ( opInfo.type ) { … … 72 65 case CodeGen::OT_POSTFIX: 73 66 case CodeGen::OT_INFIX: 67 newExpr->get_args().push_back( new VariableExpr( *param ) ); 68 break; 74 69 case CodeGen::OT_PREFIXASSIGN: 75 70 case CodeGen::OT_POSTFIXASSIGN: 76 71 case CodeGen::OT_INFIXASSIGN: 77 funcDecl->get_statements()->get_kids().push_back( new ReturnStmt( std::list< Label >(), newExpr ) ); 72 { 73 newExpr->get_args().push_back( new VariableExpr( *param ) ); 74 // UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) ); 75 // deref->get_args().push_back( new VariableExpr( *param ) ); 76 // newExpr->get_args().push_back( deref ); 78 77 break; 79 case CodeGen::OT_CTOR: 80 // ctors don't return a value 81 if ( funcDecl->get_functionType()->get_parameters().size() == 1 ) { 82 // intrinsic default constructors should do nothing 83 // delete newExpr; 84 break; 85 } else { 86 assert( funcDecl->get_functionType()->get_parameters().size() == 2 ); 87 // anything else is a single parameter constructor that is effectively a C-style assignment 88 // delete newExpr->get_function(); 89 assert(newExpr->get_args().size()==2); 90 newExpr->set_function( new NameExpr( "?=?" ) ); 91 funcDecl->get_statements()->get_kids().push_back( new ExprStmt( std::list< Label >(), newExpr ) ); 92 } 93 break; 94 case CodeGen::OT_DTOR: 95 // intrinsic destructors should do nothing 96 // delete newExpr; 97 break; 78 } 98 79 case CodeGen::OT_CONSTANT: 99 80 case CodeGen::OT_LABELADDRESS: … … 101 82 assert( false ); 102 83 } // switch 84 85 for ( param++; param != funcDecl->get_functionType()->get_parameters().end(); ++param ) { 86 if ( (*param)->get_name() == "" ) { 87 (*param)->set_name( paramNamer.newName() ); 88 (*param)->set_linkage( LinkageSpec::C ); 89 } 90 newExpr->get_args().push_back( new VariableExpr( *param ) ); 91 } // for 92 funcDecl->set_statements( new CompoundStmt( std::list< Label >() ) ); 93 funcDecl->get_statements()->get_kids().push_back( new ReturnStmt( std::list< Label >(), newExpr ) ); 94 newDecls.push_back( funcDecl ); 103 95 } 104 96 105 97 void MakeLibCfa::visit( ObjectDecl* origObjDecl ) { 106 98 if ( origObjDecl->get_linkage() != LinkageSpec::Intrinsic ) return; 107 99 108 100 ObjectDecl *objDecl = origObjDecl->clone(); 109 101 assert( ! objDecl->get_init() ); 110 102 std::list< Expression* > noDesignators; 111 objDecl->set_init( new SingleInit( new NameExpr( objDecl->get_name() ), noDesignators , false ) ); // cannot be constructed103 objDecl->set_init( new SingleInit( new NameExpr( objDecl->get_name() ), noDesignators ) ); 112 104 newDecls.push_back( objDecl ); 113 105 } 114 106 } // namespace LibCfa 107 108 // Local Variables: // 109 // tab-width: 4 // 110 // mode: c++ // 111 // compile-command: "make install" // 112 // End: // -
src/Makefile.in
rf80e0218 r1b5c81ed 123 123 GenPoly/driver_cfa_cpp-FindFunction.$(OBJEXT) \ 124 124 GenPoly/driver_cfa_cpp-DeclMutator.$(OBJEXT) \ 125 InitTweak/driver_cfa_cpp-GenInit.$(OBJEXT) \ 126 InitTweak/driver_cfa_cpp-FixInit.$(OBJEXT) \ 127 InitTweak/driver_cfa_cpp-FixGlobalInit.$(OBJEXT) \ 128 InitTweak/driver_cfa_cpp-InitTweak.$(OBJEXT) \ 125 InitTweak/driver_cfa_cpp-RemoveInit.$(OBJEXT) \ 129 126 Parser/driver_cfa_cpp-parser.$(OBJEXT) \ 130 127 Parser/driver_cfa_cpp-lex.$(OBJEXT) \ … … 162 159 SymTab/driver_cfa_cpp-ImplementationType.$(OBJEXT) \ 163 160 SymTab/driver_cfa_cpp-TypeEquality.$(OBJEXT) \ 164 SymTab/driver_cfa_cpp-Autogen.$(OBJEXT) \165 161 SynTree/driver_cfa_cpp-Type.$(OBJEXT) \ 166 162 SynTree/driver_cfa_cpp-VoidType.$(OBJEXT) \ … … 194 190 SynTree/driver_cfa_cpp-Visitor.$(OBJEXT) \ 195 191 SynTree/driver_cfa_cpp-Mutator.$(OBJEXT) \ 196 SynTree/driver_cfa_cpp-AddStmtVisitor.$(OBJEXT) \197 192 SynTree/driver_cfa_cpp-TypeSubstitution.$(OBJEXT) \ 198 SynTree/driver_cfa_cpp-Attribute.$(OBJEXT) \199 193 Tuples/driver_cfa_cpp-Mutate.$(OBJEXT) \ 200 194 Tuples/driver_cfa_cpp-AssignExpand.$(OBJEXT) \ … … 213 207 am__depfiles_maybe = depfiles 214 208 am__mv = mv -f 215 AM_V_lt = $(am__v_lt_@AM_V@)216 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)217 am__v_lt_0 = --silent218 209 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 219 210 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) 220 AM_V_CXX = $(am__v_CXX_@AM_V@)221 am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)222 am__v_CXX_0 = @echo " CXX " $@;223 AM_V_at = $(am__v_at_@AM_V@)224 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)225 am__v_at_0 = @226 211 CXXLD = $(CXX) 227 212 CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ 228 213 -o $@ 229 AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)230 am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)231 am__v_CXXLD_0 = @echo " CXXLD " $@;232 214 @MAINTAINER_MODE_FALSE@am__skiplex = test -f $@ || 233 215 LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) 234 AM_V_LEX = $(am__v_LEX_@AM_V@)235 am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@)236 am__v_LEX_0 = @echo " LEX " $@;237 216 YLWRAP = $(top_srcdir)/automake/ylwrap 238 217 @MAINTAINER_MODE_FALSE@am__skipyacc = test -f $@ || 239 218 YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) 240 AM_V_YACC = $(am__v_YACC_@AM_V@)241 am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@)242 am__v_YACC_0 = @echo " YACC " $@;243 219 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 244 220 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 245 AM_V_CC = $(am__v_CC_@AM_V@)246 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)247 am__v_CC_0 = @echo " CC " $@;248 221 CCLD = $(CC) 249 222 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ 250 AM_V_CCLD = $(am__v_CCLD_@AM_V@)251 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)252 am__v_CCLD_0 = @echo " CCLD " $@;253 AM_V_GEN = $(am__v_GEN_@AM_V@)254 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)255 am__v_GEN_0 = @echo " GEN " $@;256 223 SOURCES = $(driver_cfa_cpp_SOURCES) 257 224 DIST_SOURCES = $(driver_cfa_cpp_SOURCES) … … 262 229 ALLOCA = @ALLOCA@ 263 230 AMTAR = @AMTAR@ 264 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@265 231 AUTOCONF = @AUTOCONF@ 266 232 AUTOHEADER = @AUTOHEADER@ … … 270 236 CC = @CC@ 271 237 CCDEPMODE = @CCDEPMODE@ 272 CFA_BACKEND_CC = @CFA_BACKEND_CC@273 238 CFA_BINDIR = @CFA_BINDIR@ 274 239 CFA_INCDIR = @CFA_INCDIR@ … … 289 254 EGREP = @EGREP@ 290 255 EXEEXT = @EXEEXT@ 256 GCC_PATH = @GCC_PATH@ 291 257 GREP = @GREP@ 292 258 INSTALL = @INSTALL@ … … 379 345 GenPoly/ScrubTyVars.cc GenPoly/Lvalue.cc GenPoly/Specialize.cc \ 380 346 GenPoly/CopyParams.cc GenPoly/FindFunction.cc \ 381 GenPoly/DeclMutator.cc InitTweak/GenInit.cc \ 382 InitTweak/FixInit.cc InitTweak/FixGlobalInit.cc \ 383 InitTweak/InitTweak.cc Parser/parser.yy Parser/lex.ll \ 384 Parser/TypedefTable.cc Parser/ParseNode.cc \ 385 Parser/DeclarationNode.cc Parser/ExpressionNode.cc \ 386 Parser/StatementNode.cc Parser/InitializerNode.cc \ 387 Parser/TypeData.cc Parser/LinkageSpec.cc \ 388 Parser/parseutility.cc Parser/Parser.cc \ 347 GenPoly/DeclMutator.cc InitTweak/RemoveInit.cc \ 348 Parser/parser.yy Parser/lex.ll Parser/TypedefTable.cc \ 349 Parser/ParseNode.cc Parser/DeclarationNode.cc \ 350 Parser/ExpressionNode.cc Parser/StatementNode.cc \ 351 Parser/InitializerNode.cc Parser/TypeData.cc \ 352 Parser/LinkageSpec.cc Parser/parseutility.cc Parser/Parser.cc \ 389 353 ResolvExpr/AlternativeFinder.cc ResolvExpr/Alternative.cc \ 390 354 ResolvExpr/Unify.cc ResolvExpr/PtrsAssignable.cc \ … … 398 362 SymTab/Mangler.cc SymTab/Validate.cc SymTab/FixFunction.cc \ 399 363 SymTab/ImplementationType.cc SymTab/TypeEquality.cc \ 400 SymTab/Autogen.cc SynTree/Type.cc SynTree/VoidType.cc \ 401 SynTree/BasicType.cc SynTree/PointerType.cc \ 402 SynTree/ArrayType.cc SynTree/FunctionType.cc \ 403 SynTree/ReferenceToType.cc SynTree/TupleType.cc \ 404 SynTree/TypeofType.cc SynTree/AttrType.cc \ 364 SynTree/Type.cc SynTree/VoidType.cc SynTree/BasicType.cc \ 365 SynTree/PointerType.cc SynTree/ArrayType.cc \ 366 SynTree/FunctionType.cc SynTree/ReferenceToType.cc \ 367 SynTree/TupleType.cc SynTree/TypeofType.cc SynTree/AttrType.cc \ 405 368 SynTree/VarArgsType.cc SynTree/Constant.cc \ 406 369 SynTree/Expression.cc SynTree/TupleExpr.cc \ … … 413 376 SynTree/NamedTypeDecl.cc SynTree/TypeDecl.cc \ 414 377 SynTree/Initializer.cc SynTree/Visitor.cc SynTree/Mutator.cc \ 415 SynTree/ AddStmtVisitor.cc SynTree/TypeSubstitution.cc \416 SynTree/Attribute.cc Tuples/Mutate.cc Tuples/AssignExpand.cc \417 Tuples/ FunctionFixer.cc Tuples/TupleAssignment.cc \418 Tuples/ FunctionChecker.cc Tuples/NameMatcher.cc378 SynTree/TypeSubstitution.cc Tuples/Mutate.cc \ 379 Tuples/AssignExpand.cc Tuples/FunctionFixer.cc \ 380 Tuples/TupleAssignment.cc Tuples/FunctionChecker.cc \ 381 Tuples/NameMatcher.cc 419 382 MAINTAINERCLEANFILES = Parser/parser.output ${libdir}/${notdir \ 420 383 ${cfa_cpplib_PROGRAMS}} … … 598 561 @$(MKDIR_P) InitTweak/$(DEPDIR) 599 562 @: > InitTweak/$(DEPDIR)/$(am__dirstamp) 600 InitTweak/driver_cfa_cpp-GenInit.$(OBJEXT): InitTweak/$(am__dirstamp) \ 601 InitTweak/$(DEPDIR)/$(am__dirstamp) 602 InitTweak/driver_cfa_cpp-FixInit.$(OBJEXT): InitTweak/$(am__dirstamp) \ 603 InitTweak/$(DEPDIR)/$(am__dirstamp) 604 InitTweak/driver_cfa_cpp-FixGlobalInit.$(OBJEXT): \ 605 InitTweak/$(am__dirstamp) InitTweak/$(DEPDIR)/$(am__dirstamp) 606 InitTweak/driver_cfa_cpp-InitTweak.$(OBJEXT): \ 563 InitTweak/driver_cfa_cpp-RemoveInit.$(OBJEXT): \ 607 564 InitTweak/$(am__dirstamp) InitTweak/$(DEPDIR)/$(am__dirstamp) 608 565 Parser/parser.h: Parser/parser.cc … … 713 670 SymTab/driver_cfa_cpp-TypeEquality.$(OBJEXT): SymTab/$(am__dirstamp) \ 714 671 SymTab/$(DEPDIR)/$(am__dirstamp) 715 SymTab/driver_cfa_cpp-Autogen.$(OBJEXT): SymTab/$(am__dirstamp) \716 SymTab/$(DEPDIR)/$(am__dirstamp)717 672 SynTree/$(am__dirstamp): 718 673 @$(MKDIR_P) SynTree … … 783 738 SynTree/driver_cfa_cpp-Mutator.$(OBJEXT): SynTree/$(am__dirstamp) \ 784 739 SynTree/$(DEPDIR)/$(am__dirstamp) 785 SynTree/driver_cfa_cpp-AddStmtVisitor.$(OBJEXT): \786 SynTree/$(am__dirstamp) SynTree/$(DEPDIR)/$(am__dirstamp)787 740 SynTree/driver_cfa_cpp-TypeSubstitution.$(OBJEXT): \ 788 741 SynTree/$(am__dirstamp) SynTree/$(DEPDIR)/$(am__dirstamp) 789 SynTree/driver_cfa_cpp-Attribute.$(OBJEXT): SynTree/$(am__dirstamp) \790 SynTree/$(DEPDIR)/$(am__dirstamp)791 742 Tuples/$(am__dirstamp): 792 743 @$(MKDIR_P) Tuples … … 812 763 driver/cfa-cpp$(EXEEXT): $(driver_cfa_cpp_OBJECTS) $(driver_cfa_cpp_DEPENDENCIES) $(EXTRA_driver_cfa_cpp_DEPENDENCIES) driver/$(am__dirstamp) 813 764 @rm -f driver/cfa-cpp$(EXEEXT) 814 $( AM_V_CXXLD)$(driver_cfa_cpp_LINK) $(driver_cfa_cpp_OBJECTS) $(driver_cfa_cpp_LDADD) $(LIBS)765 $(driver_cfa_cpp_LINK) $(driver_cfa_cpp_OBJECTS) $(driver_cfa_cpp_LDADD) $(LIBS) 815 766 816 767 mostlyclean-compile: … … 841 792 -rm -f GenPoly/driver_cfa_cpp-ScrubTyVars.$(OBJEXT) 842 793 -rm -f GenPoly/driver_cfa_cpp-Specialize.$(OBJEXT) 843 -rm -f InitTweak/driver_cfa_cpp-FixGlobalInit.$(OBJEXT) 844 -rm -f InitTweak/driver_cfa_cpp-FixInit.$(OBJEXT) 845 -rm -f InitTweak/driver_cfa_cpp-GenInit.$(OBJEXT) 846 -rm -f InitTweak/driver_cfa_cpp-InitTweak.$(OBJEXT) 794 -rm -f InitTweak/driver_cfa_cpp-RemoveInit.$(OBJEXT) 847 795 -rm -f Parser/driver_cfa_cpp-DeclarationNode.$(OBJEXT) 848 796 -rm -f Parser/driver_cfa_cpp-ExpressionNode.$(OBJEXT) … … 874 822 -rm -f ResolvExpr/driver_cfa_cpp-TypeEnvironment.$(OBJEXT) 875 823 -rm -f ResolvExpr/driver_cfa_cpp-Unify.$(OBJEXT) 876 -rm -f SymTab/driver_cfa_cpp-Autogen.$(OBJEXT)877 824 -rm -f SymTab/driver_cfa_cpp-FixFunction.$(OBJEXT) 878 825 -rm -f SymTab/driver_cfa_cpp-ImplementationType.$(OBJEXT) … … 881 828 -rm -f SymTab/driver_cfa_cpp-TypeEquality.$(OBJEXT) 882 829 -rm -f SymTab/driver_cfa_cpp-Validate.$(OBJEXT) 883 -rm -f SynTree/driver_cfa_cpp-AddStmtVisitor.$(OBJEXT)884 830 -rm -f SynTree/driver_cfa_cpp-AddressExpr.$(OBJEXT) 885 831 -rm -f SynTree/driver_cfa_cpp-AggregateDecl.$(OBJEXT) … … 887 833 -rm -f SynTree/driver_cfa_cpp-ArrayType.$(OBJEXT) 888 834 -rm -f SynTree/driver_cfa_cpp-AttrType.$(OBJEXT) 889 -rm -f SynTree/driver_cfa_cpp-Attribute.$(OBJEXT)890 835 -rm -f SynTree/driver_cfa_cpp-BasicType.$(OBJEXT) 891 836 -rm -f SynTree/driver_cfa_cpp-CommaExpr.$(OBJEXT) … … 952 897 @AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Po@am__quote@ 953 898 @AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Po@am__quote@ 954 @AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Po@am__quote@ 955 @AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Po@am__quote@ 956 @AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Po@am__quote@ 957 @AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Po@am__quote@ 899 @AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Po@am__quote@ 958 900 @AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Po@am__quote@ 959 901 @AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Po@am__quote@ … … 985 927 @AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Po@am__quote@ 986 928 @AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Po@am__quote@ 987 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Po@am__quote@988 929 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Po@am__quote@ 989 930 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Po@am__quote@ … … 992 933 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po@am__quote@ 993 934 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po@am__quote@ 994 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Po@am__quote@995 935 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Po@am__quote@ 996 936 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Po@am__quote@ … … 998 938 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Po@am__quote@ 999 939 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Po@am__quote@ 1000 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Po@am__quote@1001 940 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Po@am__quote@ 1002 941 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Po@am__quote@ … … 1034 973 1035 974 .cc.o: 1036 @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\975 @am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ 1037 976 @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ 1038 977 @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po 1039 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@1040 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1041 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<978 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 979 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 980 @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< 1042 981 1043 982 .cc.obj: 1044 @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\983 @am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ 1045 984 @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ 1046 985 @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po 1047 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@1048 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1049 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`986 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 987 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 988 @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 1050 989 1051 990 driver_cfa_cpp-main.o: main.cc 1052 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-main.o -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-main.Tpo -c -o driver_cfa_cpp-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc1053 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) $(DEPDIR)/driver_cfa_cpp-main.Tpo $(DEPDIR)/driver_cfa_cpp-main.Po1054 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='main.cc' object='driver_cfa_cpp-main.o' libtool=no @AMDEPBACKSLASH@1055 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1056 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc991 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-main.o -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-main.Tpo -c -o driver_cfa_cpp-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc 992 @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver_cfa_cpp-main.Tpo $(DEPDIR)/driver_cfa_cpp-main.Po 993 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cc' object='driver_cfa_cpp-main.o' libtool=no @AMDEPBACKSLASH@ 994 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 995 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc 1057 996 1058 997 driver_cfa_cpp-main.obj: main.cc 1059 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-main.obj -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-main.Tpo -c -o driver_cfa_cpp-main.obj `if test -f 'main.cc'; then $(CYGPATH_W) 'main.cc'; else $(CYGPATH_W) '$(srcdir)/main.cc'; fi`1060 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) $(DEPDIR)/driver_cfa_cpp-main.Tpo $(DEPDIR)/driver_cfa_cpp-main.Po1061 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='main.cc' object='driver_cfa_cpp-main.obj' libtool=no @AMDEPBACKSLASH@1062 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1063 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-main.obj `if test -f 'main.cc'; then $(CYGPATH_W) 'main.cc'; else $(CYGPATH_W) '$(srcdir)/main.cc'; fi`998 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-main.obj -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-main.Tpo -c -o driver_cfa_cpp-main.obj `if test -f 'main.cc'; then $(CYGPATH_W) 'main.cc'; else $(CYGPATH_W) '$(srcdir)/main.cc'; fi` 999 @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver_cfa_cpp-main.Tpo $(DEPDIR)/driver_cfa_cpp-main.Po 1000 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cc' object='driver_cfa_cpp-main.obj' libtool=no @AMDEPBACKSLASH@ 1001 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1002 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-main.obj `if test -f 'main.cc'; then $(CYGPATH_W) 'main.cc'; else $(CYGPATH_W) '$(srcdir)/main.cc'; fi` 1064 1003 1065 1004 driver_cfa_cpp-MakeLibCfa.o: MakeLibCfa.cc 1066 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-MakeLibCfa.o -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo -c -o driver_cfa_cpp-MakeLibCfa.o `test -f 'MakeLibCfa.cc' || echo '$(srcdir)/'`MakeLibCfa.cc1067 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Po1068 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MakeLibCfa.cc' object='driver_cfa_cpp-MakeLibCfa.o' libtool=no @AMDEPBACKSLASH@1069 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1070 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-MakeLibCfa.o `test -f 'MakeLibCfa.cc' || echo '$(srcdir)/'`MakeLibCfa.cc1005 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-MakeLibCfa.o -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo -c -o driver_cfa_cpp-MakeLibCfa.o `test -f 'MakeLibCfa.cc' || echo '$(srcdir)/'`MakeLibCfa.cc 1006 @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Po 1007 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MakeLibCfa.cc' object='driver_cfa_cpp-MakeLibCfa.o' libtool=no @AMDEPBACKSLASH@ 1008 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1009 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-MakeLibCfa.o `test -f 'MakeLibCfa.cc' || echo '$(srcdir)/'`MakeLibCfa.cc 1071 1010 1072 1011 driver_cfa_cpp-MakeLibCfa.obj: MakeLibCfa.cc 1073 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-MakeLibCfa.obj -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo -c -o driver_cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi`1074 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Po1075 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='MakeLibCfa.cc' object='driver_cfa_cpp-MakeLibCfa.obj' libtool=no @AMDEPBACKSLASH@1076 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1077 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi`1012 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT driver_cfa_cpp-MakeLibCfa.obj -MD -MP -MF $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo -c -o driver_cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi` 1013 @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Tpo $(DEPDIR)/driver_cfa_cpp-MakeLibCfa.Po 1014 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MakeLibCfa.cc' object='driver_cfa_cpp-MakeLibCfa.obj' libtool=no @AMDEPBACKSLASH@ 1015 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1016 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o driver_cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi` 1078 1017 1079 1018 CodeGen/driver_cfa_cpp-Generate.o: CodeGen/Generate.cc 1080 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-Generate.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo -c -o CodeGen/driver_cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc1081 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Po1082 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/Generate.cc' object='CodeGen/driver_cfa_cpp-Generate.o' libtool=no @AMDEPBACKSLASH@1083 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1084 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc1019 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-Generate.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo -c -o CodeGen/driver_cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc 1020 @am__fastdepCXX_TRUE@ $(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Po 1021 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/Generate.cc' object='CodeGen/driver_cfa_cpp-Generate.o' libtool=no @AMDEPBACKSLASH@ 1022 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1023 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc 1085 1024 1086 1025 CodeGen/driver_cfa_cpp-Generate.obj: CodeGen/Generate.cc 1087 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-Generate.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo -c -o CodeGen/driver_cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi`1088 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Po1089 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/Generate.cc' object='CodeGen/driver_cfa_cpp-Generate.obj' libtool=no @AMDEPBACKSLASH@1090 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1091 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi`1026 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-Generate.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo -c -o CodeGen/driver_cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi` 1027 @am__fastdepCXX_TRUE@ $(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Po 1028 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/Generate.cc' object='CodeGen/driver_cfa_cpp-Generate.obj' libtool=no @AMDEPBACKSLASH@ 1029 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1030 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi` 1092 1031 1093 1032 CodeGen/driver_cfa_cpp-CodeGenerator.o: CodeGen/CodeGenerator.cc 1094 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-CodeGenerator.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/driver_cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc1095 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Po1096 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/CodeGenerator.cc' object='CodeGen/driver_cfa_cpp-CodeGenerator.o' libtool=no @AMDEPBACKSLASH@1097 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1098 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc1033 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-CodeGenerator.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/driver_cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc 1034 @am__fastdepCXX_TRUE@ $(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Po 1035 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/CodeGenerator.cc' object='CodeGen/driver_cfa_cpp-CodeGenerator.o' libtool=no @AMDEPBACKSLASH@ 1036 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1037 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc 1099 1038 1100 1039 CodeGen/driver_cfa_cpp-CodeGenerator.obj: CodeGen/CodeGenerator.cc 1101 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-CodeGenerator.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/driver_cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi`1102 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Po1103 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/CodeGenerator.cc' object='CodeGen/driver_cfa_cpp-CodeGenerator.obj' libtool=no @AMDEPBACKSLASH@1104 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1105 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi`1040 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-CodeGenerator.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/driver_cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi` 1041 @am__fastdepCXX_TRUE@ $(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-CodeGenerator.Po 1042 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/CodeGenerator.cc' object='CodeGen/driver_cfa_cpp-CodeGenerator.obj' libtool=no @AMDEPBACKSLASH@ 1043 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1044 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi` 1106 1045 1107 1046 CodeGen/driver_cfa_cpp-GenType.o: CodeGen/GenType.cc 1108 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-GenType.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo -c -o CodeGen/driver_cfa_cpp-GenType.o `test -f 'CodeGen/GenType.cc' || echo '$(srcdir)/'`CodeGen/GenType.cc1109 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Po1110 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/GenType.cc' object='CodeGen/driver_cfa_cpp-GenType.o' libtool=no @AMDEPBACKSLASH@1111 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1112 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-GenType.o `test -f 'CodeGen/GenType.cc' || echo '$(srcdir)/'`CodeGen/GenType.cc1047 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-GenType.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo -c -o CodeGen/driver_cfa_cpp-GenType.o `test -f 'CodeGen/GenType.cc' || echo '$(srcdir)/'`CodeGen/GenType.cc 1048 @am__fastdepCXX_TRUE@ $(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Po 1049 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/GenType.cc' object='CodeGen/driver_cfa_cpp-GenType.o' libtool=no @AMDEPBACKSLASH@ 1050 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1051 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-GenType.o `test -f 'CodeGen/GenType.cc' || echo '$(srcdir)/'`CodeGen/GenType.cc 1113 1052 1114 1053 CodeGen/driver_cfa_cpp-GenType.obj: CodeGen/GenType.cc 1115 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-GenType.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo -c -o CodeGen/driver_cfa_cpp-GenType.obj `if test -f 'CodeGen/GenType.cc'; then $(CYGPATH_W) 'CodeGen/GenType.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/GenType.cc'; fi`1116 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Po1117 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/GenType.cc' object='CodeGen/driver_cfa_cpp-GenType.obj' libtool=no @AMDEPBACKSLASH@1118 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1119 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-GenType.obj `if test -f 'CodeGen/GenType.cc'; then $(CYGPATH_W) 'CodeGen/GenType.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/GenType.cc'; fi`1054 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-GenType.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo -c -o CodeGen/driver_cfa_cpp-GenType.obj `if test -f 'CodeGen/GenType.cc'; then $(CYGPATH_W) 'CodeGen/GenType.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/GenType.cc'; fi` 1055 @am__fastdepCXX_TRUE@ $(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-GenType.Po 1056 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/GenType.cc' object='CodeGen/driver_cfa_cpp-GenType.obj' libtool=no @AMDEPBACKSLASH@ 1057 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1058 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-GenType.obj `if test -f 'CodeGen/GenType.cc'; then $(CYGPATH_W) 'CodeGen/GenType.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/GenType.cc'; fi` 1120 1059 1121 1060 CodeGen/driver_cfa_cpp-FixNames.o: CodeGen/FixNames.cc 1122 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-FixNames.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo -c -o CodeGen/driver_cfa_cpp-FixNames.o `test -f 'CodeGen/FixNames.cc' || echo '$(srcdir)/'`CodeGen/FixNames.cc1123 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Po1124 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/FixNames.cc' object='CodeGen/driver_cfa_cpp-FixNames.o' libtool=no @AMDEPBACKSLASH@1125 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1126 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-FixNames.o `test -f 'CodeGen/FixNames.cc' || echo '$(srcdir)/'`CodeGen/FixNames.cc1061 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-FixNames.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo -c -o CodeGen/driver_cfa_cpp-FixNames.o `test -f 'CodeGen/FixNames.cc' || echo '$(srcdir)/'`CodeGen/FixNames.cc 1062 @am__fastdepCXX_TRUE@ $(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Po 1063 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/FixNames.cc' object='CodeGen/driver_cfa_cpp-FixNames.o' libtool=no @AMDEPBACKSLASH@ 1064 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1065 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-FixNames.o `test -f 'CodeGen/FixNames.cc' || echo '$(srcdir)/'`CodeGen/FixNames.cc 1127 1066 1128 1067 CodeGen/driver_cfa_cpp-FixNames.obj: CodeGen/FixNames.cc 1129 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-FixNames.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo -c -o CodeGen/driver_cfa_cpp-FixNames.obj `if test -f 'CodeGen/FixNames.cc'; then $(CYGPATH_W) 'CodeGen/FixNames.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/FixNames.cc'; fi`1130 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Po1131 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/FixNames.cc' object='CodeGen/driver_cfa_cpp-FixNames.obj' libtool=no @AMDEPBACKSLASH@1132 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1133 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-FixNames.obj `if test -f 'CodeGen/FixNames.cc'; then $(CYGPATH_W) 'CodeGen/FixNames.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/FixNames.cc'; fi`1068 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-FixNames.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo -c -o CodeGen/driver_cfa_cpp-FixNames.obj `if test -f 'CodeGen/FixNames.cc'; then $(CYGPATH_W) 'CodeGen/FixNames.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/FixNames.cc'; fi` 1069 @am__fastdepCXX_TRUE@ $(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-FixNames.Po 1070 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/FixNames.cc' object='CodeGen/driver_cfa_cpp-FixNames.obj' libtool=no @AMDEPBACKSLASH@ 1071 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1072 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-FixNames.obj `if test -f 'CodeGen/FixNames.cc'; then $(CYGPATH_W) 'CodeGen/FixNames.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/FixNames.cc'; fi` 1134 1073 1135 1074 CodeGen/driver_cfa_cpp-OperatorTable.o: CodeGen/OperatorTable.cc 1136 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-OperatorTable.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo -c -o CodeGen/driver_cfa_cpp-OperatorTable.o `test -f 'CodeGen/OperatorTable.cc' || echo '$(srcdir)/'`CodeGen/OperatorTable.cc1137 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po1138 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/OperatorTable.cc' object='CodeGen/driver_cfa_cpp-OperatorTable.o' libtool=no @AMDEPBACKSLASH@1139 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1140 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-OperatorTable.o `test -f 'CodeGen/OperatorTable.cc' || echo '$(srcdir)/'`CodeGen/OperatorTable.cc1075 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-OperatorTable.o -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo -c -o CodeGen/driver_cfa_cpp-OperatorTable.o `test -f 'CodeGen/OperatorTable.cc' || echo '$(srcdir)/'`CodeGen/OperatorTable.cc 1076 @am__fastdepCXX_TRUE@ $(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po 1077 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/OperatorTable.cc' object='CodeGen/driver_cfa_cpp-OperatorTable.o' libtool=no @AMDEPBACKSLASH@ 1078 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1079 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-OperatorTable.o `test -f 'CodeGen/OperatorTable.cc' || echo '$(srcdir)/'`CodeGen/OperatorTable.cc 1141 1080 1142 1081 CodeGen/driver_cfa_cpp-OperatorTable.obj: CodeGen/OperatorTable.cc 1143 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-OperatorTable.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo -c -o CodeGen/driver_cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi`1144 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po1145 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeGen/OperatorTable.cc' object='CodeGen/driver_cfa_cpp-OperatorTable.obj' libtool=no @AMDEPBACKSLASH@1146 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1147 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi`1082 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/driver_cfa_cpp-OperatorTable.obj -MD -MP -MF CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo -c -o CodeGen/driver_cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi` 1083 @am__fastdepCXX_TRUE@ $(am__mv) CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Tpo CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po 1084 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CodeGen/OperatorTable.cc' object='CodeGen/driver_cfa_cpp-OperatorTable.obj' libtool=no @AMDEPBACKSLASH@ 1085 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1086 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi` 1148 1087 1149 1088 Common/driver_cfa_cpp-SemanticError.o: Common/SemanticError.cc 1150 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-SemanticError.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo -c -o Common/driver_cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc1151 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po1152 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/SemanticError.cc' object='Common/driver_cfa_cpp-SemanticError.o' libtool=no @AMDEPBACKSLASH@1153 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1154 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc1089 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-SemanticError.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo -c -o Common/driver_cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc 1090 @am__fastdepCXX_TRUE@ $(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po 1091 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Common/SemanticError.cc' object='Common/driver_cfa_cpp-SemanticError.o' libtool=no @AMDEPBACKSLASH@ 1092 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1093 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc 1155 1094 1156 1095 Common/driver_cfa_cpp-SemanticError.obj: Common/SemanticError.cc 1157 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-SemanticError.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo -c -o Common/driver_cfa_cpp-SemanticError.obj `if test -f 'Common/SemanticError.cc'; then $(CYGPATH_W) 'Common/SemanticError.cc'; else $(CYGPATH_W) '$(srcdir)/Common/SemanticError.cc'; fi`1158 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po1159 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/SemanticError.cc' object='Common/driver_cfa_cpp-SemanticError.obj' libtool=no @AMDEPBACKSLASH@1160 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1161 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-SemanticError.obj `if test -f 'Common/SemanticError.cc'; then $(CYGPATH_W) 'Common/SemanticError.cc'; else $(CYGPATH_W) '$(srcdir)/Common/SemanticError.cc'; fi`1096 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-SemanticError.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo -c -o Common/driver_cfa_cpp-SemanticError.obj `if test -f 'Common/SemanticError.cc'; then $(CYGPATH_W) 'Common/SemanticError.cc'; else $(CYGPATH_W) '$(srcdir)/Common/SemanticError.cc'; fi` 1097 @am__fastdepCXX_TRUE@ $(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po 1098 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Common/SemanticError.cc' object='Common/driver_cfa_cpp-SemanticError.obj' libtool=no @AMDEPBACKSLASH@ 1099 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1100 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-SemanticError.obj `if test -f 'Common/SemanticError.cc'; then $(CYGPATH_W) 'Common/SemanticError.cc'; else $(CYGPATH_W) '$(srcdir)/Common/SemanticError.cc'; fi` 1162 1101 1163 1102 Common/driver_cfa_cpp-UniqueName.o: Common/UniqueName.cc 1164 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-UniqueName.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo -c -o Common/driver_cfa_cpp-UniqueName.o `test -f 'Common/UniqueName.cc' || echo '$(srcdir)/'`Common/UniqueName.cc1165 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po1166 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/UniqueName.cc' object='Common/driver_cfa_cpp-UniqueName.o' libtool=no @AMDEPBACKSLASH@1167 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1168 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-UniqueName.o `test -f 'Common/UniqueName.cc' || echo '$(srcdir)/'`Common/UniqueName.cc1103 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-UniqueName.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo -c -o Common/driver_cfa_cpp-UniqueName.o `test -f 'Common/UniqueName.cc' || echo '$(srcdir)/'`Common/UniqueName.cc 1104 @am__fastdepCXX_TRUE@ $(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po 1105 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Common/UniqueName.cc' object='Common/driver_cfa_cpp-UniqueName.o' libtool=no @AMDEPBACKSLASH@ 1106 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1107 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-UniqueName.o `test -f 'Common/UniqueName.cc' || echo '$(srcdir)/'`Common/UniqueName.cc 1169 1108 1170 1109 Common/driver_cfa_cpp-UniqueName.obj: Common/UniqueName.cc 1171 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-UniqueName.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo -c -o Common/driver_cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi`1172 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po1173 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/UniqueName.cc' object='Common/driver_cfa_cpp-UniqueName.obj' libtool=no @AMDEPBACKSLASH@1174 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1175 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi`1110 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-UniqueName.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo -c -o Common/driver_cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi` 1111 @am__fastdepCXX_TRUE@ $(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Tpo Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po 1112 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Common/UniqueName.cc' object='Common/driver_cfa_cpp-UniqueName.obj' libtool=no @AMDEPBACKSLASH@ 1113 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1114 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi` 1176 1115 1177 1116 ControlStruct/driver_cfa_cpp-LabelGenerator.o: ControlStruct/LabelGenerator.cc 1178 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelGenerator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc1179 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Po1180 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelGenerator.cc' object='ControlStruct/driver_cfa_cpp-LabelGenerator.o' libtool=no @AMDEPBACKSLASH@1181 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1182 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc1117 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelGenerator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc 1118 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Po 1119 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelGenerator.cc' object='ControlStruct/driver_cfa_cpp-LabelGenerator.o' libtool=no @AMDEPBACKSLASH@ 1120 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1121 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc 1183 1122 1184 1123 ControlStruct/driver_cfa_cpp-LabelGenerator.obj: ControlStruct/LabelGenerator.cc 1185 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelGenerator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.obj `if test -f 'ControlStruct/LabelGenerator.cc'; then $(CYGPATH_W) 'ControlStruct/LabelGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelGenerator.cc'; fi`1186 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Po1187 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelGenerator.cc' object='ControlStruct/driver_cfa_cpp-LabelGenerator.obj' libtool=no @AMDEPBACKSLASH@1188 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1189 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.obj `if test -f 'ControlStruct/LabelGenerator.cc'; then $(CYGPATH_W) 'ControlStruct/LabelGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelGenerator.cc'; fi`1124 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelGenerator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.obj `if test -f 'ControlStruct/LabelGenerator.cc'; then $(CYGPATH_W) 'ControlStruct/LabelGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelGenerator.cc'; fi` 1125 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Po 1126 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelGenerator.cc' object='ControlStruct/driver_cfa_cpp-LabelGenerator.obj' libtool=no @AMDEPBACKSLASH@ 1127 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1128 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.obj `if test -f 'ControlStruct/LabelGenerator.cc'; then $(CYGPATH_W) 'ControlStruct/LabelGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelGenerator.cc'; fi` 1190 1129 1191 1130 ControlStruct/driver_cfa_cpp-LabelFixer.o: ControlStruct/LabelFixer.cc 1192 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelFixer.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelFixer.o `test -f 'ControlStruct/LabelFixer.cc' || echo '$(srcdir)/'`ControlStruct/LabelFixer.cc1193 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Po1194 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelFixer.cc' object='ControlStruct/driver_cfa_cpp-LabelFixer.o' libtool=no @AMDEPBACKSLASH@1195 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1196 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelFixer.o `test -f 'ControlStruct/LabelFixer.cc' || echo '$(srcdir)/'`ControlStruct/LabelFixer.cc1131 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelFixer.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelFixer.o `test -f 'ControlStruct/LabelFixer.cc' || echo '$(srcdir)/'`ControlStruct/LabelFixer.cc 1132 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Po 1133 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelFixer.cc' object='ControlStruct/driver_cfa_cpp-LabelFixer.o' libtool=no @AMDEPBACKSLASH@ 1134 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1135 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelFixer.o `test -f 'ControlStruct/LabelFixer.cc' || echo '$(srcdir)/'`ControlStruct/LabelFixer.cc 1197 1136 1198 1137 ControlStruct/driver_cfa_cpp-LabelFixer.obj: ControlStruct/LabelFixer.cc 1199 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelFixer.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelFixer.obj `if test -f 'ControlStruct/LabelFixer.cc'; then $(CYGPATH_W) 'ControlStruct/LabelFixer.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelFixer.cc'; fi`1200 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Po1201 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelFixer.cc' object='ControlStruct/driver_cfa_cpp-LabelFixer.obj' libtool=no @AMDEPBACKSLASH@1202 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1203 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelFixer.obj `if test -f 'ControlStruct/LabelFixer.cc'; then $(CYGPATH_W) 'ControlStruct/LabelFixer.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelFixer.cc'; fi`1138 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelFixer.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelFixer.obj `if test -f 'ControlStruct/LabelFixer.cc'; then $(CYGPATH_W) 'ControlStruct/LabelFixer.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelFixer.cc'; fi` 1139 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Po 1140 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelFixer.cc' object='ControlStruct/driver_cfa_cpp-LabelFixer.obj' libtool=no @AMDEPBACKSLASH@ 1141 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1142 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelFixer.obj `if test -f 'ControlStruct/LabelFixer.cc'; then $(CYGPATH_W) 'ControlStruct/LabelFixer.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelFixer.cc'; fi` 1204 1143 1205 1144 ControlStruct/driver_cfa_cpp-MLEMutator.o: ControlStruct/MLEMutator.cc 1206 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-MLEMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-MLEMutator.o `test -f 'ControlStruct/MLEMutator.cc' || echo '$(srcdir)/'`ControlStruct/MLEMutator.cc1207 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Po1208 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/MLEMutator.cc' object='ControlStruct/driver_cfa_cpp-MLEMutator.o' libtool=no @AMDEPBACKSLASH@1209 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1210 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-MLEMutator.o `test -f 'ControlStruct/MLEMutator.cc' || echo '$(srcdir)/'`ControlStruct/MLEMutator.cc1145 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-MLEMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-MLEMutator.o `test -f 'ControlStruct/MLEMutator.cc' || echo '$(srcdir)/'`ControlStruct/MLEMutator.cc 1146 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Po 1147 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/MLEMutator.cc' object='ControlStruct/driver_cfa_cpp-MLEMutator.o' libtool=no @AMDEPBACKSLASH@ 1148 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1149 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-MLEMutator.o `test -f 'ControlStruct/MLEMutator.cc' || echo '$(srcdir)/'`ControlStruct/MLEMutator.cc 1211 1150 1212 1151 ControlStruct/driver_cfa_cpp-MLEMutator.obj: ControlStruct/MLEMutator.cc 1213 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-MLEMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi`1214 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Po1215 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/MLEMutator.cc' object='ControlStruct/driver_cfa_cpp-MLEMutator.obj' libtool=no @AMDEPBACKSLASH@1216 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1217 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi`1152 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-MLEMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi` 1153 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Po 1154 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/MLEMutator.cc' object='ControlStruct/driver_cfa_cpp-MLEMutator.obj' libtool=no @AMDEPBACKSLASH@ 1155 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1156 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi` 1218 1157 1219 1158 ControlStruct/driver_cfa_cpp-CaseRangeMutator.o: ControlStruct/CaseRangeMutator.cc 1220 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-CaseRangeMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc1221 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po1222 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/driver_cfa_cpp-CaseRangeMutator.o' libtool=no @AMDEPBACKSLASH@1223 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1224 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc1159 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-CaseRangeMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc 1160 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po 1161 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/driver_cfa_cpp-CaseRangeMutator.o' libtool=no @AMDEPBACKSLASH@ 1162 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1163 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc 1225 1164 1226 1165 ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj: ControlStruct/CaseRangeMutator.cc 1227 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi`1228 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po1229 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj' libtool=no @AMDEPBACKSLASH@1230 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1231 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi`1166 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi` 1167 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po 1168 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj' libtool=no @AMDEPBACKSLASH@ 1169 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1170 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi` 1232 1171 1233 1172 ControlStruct/driver_cfa_cpp-Mutate.o: ControlStruct/Mutate.cc 1234 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-Mutate.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o ControlStruct/driver_cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc1235 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Po1236 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/Mutate.cc' object='ControlStruct/driver_cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@1237 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1238 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc1173 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-Mutate.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o ControlStruct/driver_cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc 1174 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Po 1175 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/Mutate.cc' object='ControlStruct/driver_cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@ 1176 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1177 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc 1239 1178 1240 1179 ControlStruct/driver_cfa_cpp-Mutate.obj: ControlStruct/Mutate.cc 1241 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-Mutate.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o ControlStruct/driver_cfa_cpp-Mutate.obj `if test -f 'ControlStruct/Mutate.cc'; then $(CYGPATH_W) 'ControlStruct/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/Mutate.cc'; fi`1242 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Po1243 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/Mutate.cc' object='ControlStruct/driver_cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@1244 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1245 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-Mutate.obj `if test -f 'ControlStruct/Mutate.cc'; then $(CYGPATH_W) 'ControlStruct/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/Mutate.cc'; fi`1180 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-Mutate.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o ControlStruct/driver_cfa_cpp-Mutate.obj `if test -f 'ControlStruct/Mutate.cc'; then $(CYGPATH_W) 'ControlStruct/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/Mutate.cc'; fi` 1181 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Po 1182 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/Mutate.cc' object='ControlStruct/driver_cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@ 1183 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1184 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-Mutate.obj `if test -f 'ControlStruct/Mutate.cc'; then $(CYGPATH_W) 'ControlStruct/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/Mutate.cc'; fi` 1246 1185 1247 1186 ControlStruct/driver_cfa_cpp-ChooseMutator.o: ControlStruct/ChooseMutator.cc 1248 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ChooseMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.o `test -f 'ControlStruct/ChooseMutator.cc' || echo '$(srcdir)/'`ControlStruct/ChooseMutator.cc1249 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Po1250 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/ChooseMutator.cc' object='ControlStruct/driver_cfa_cpp-ChooseMutator.o' libtool=no @AMDEPBACKSLASH@1251 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1252 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.o `test -f 'ControlStruct/ChooseMutator.cc' || echo '$(srcdir)/'`ControlStruct/ChooseMutator.cc1187 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ChooseMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.o `test -f 'ControlStruct/ChooseMutator.cc' || echo '$(srcdir)/'`ControlStruct/ChooseMutator.cc 1188 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Po 1189 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/ChooseMutator.cc' object='ControlStruct/driver_cfa_cpp-ChooseMutator.o' libtool=no @AMDEPBACKSLASH@ 1190 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1191 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.o `test -f 'ControlStruct/ChooseMutator.cc' || echo '$(srcdir)/'`ControlStruct/ChooseMutator.cc 1253 1192 1254 1193 ControlStruct/driver_cfa_cpp-ChooseMutator.obj: ControlStruct/ChooseMutator.cc 1255 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ChooseMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.obj `if test -f 'ControlStruct/ChooseMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ChooseMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ChooseMutator.cc'; fi`1256 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Po1257 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/ChooseMutator.cc' object='ControlStruct/driver_cfa_cpp-ChooseMutator.obj' libtool=no @AMDEPBACKSLASH@1258 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1259 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.obj `if test -f 'ControlStruct/ChooseMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ChooseMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ChooseMutator.cc'; fi`1194 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ChooseMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.obj `if test -f 'ControlStruct/ChooseMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ChooseMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ChooseMutator.cc'; fi` 1195 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ChooseMutator.Po 1196 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/ChooseMutator.cc' object='ControlStruct/driver_cfa_cpp-ChooseMutator.obj' libtool=no @AMDEPBACKSLASH@ 1197 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1198 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ChooseMutator.obj `if test -f 'ControlStruct/ChooseMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ChooseMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ChooseMutator.cc'; fi` 1260 1199 1261 1200 ControlStruct/driver_cfa_cpp-ForExprMutator.o: ControlStruct/ForExprMutator.cc 1262 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ForExprMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.o `test -f 'ControlStruct/ForExprMutator.cc' || echo '$(srcdir)/'`ControlStruct/ForExprMutator.cc1263 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Po1264 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/ForExprMutator.cc' object='ControlStruct/driver_cfa_cpp-ForExprMutator.o' libtool=no @AMDEPBACKSLASH@1265 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1266 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.o `test -f 'ControlStruct/ForExprMutator.cc' || echo '$(srcdir)/'`ControlStruct/ForExprMutator.cc1201 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ForExprMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.o `test -f 'ControlStruct/ForExprMutator.cc' || echo '$(srcdir)/'`ControlStruct/ForExprMutator.cc 1202 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Po 1203 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/ForExprMutator.cc' object='ControlStruct/driver_cfa_cpp-ForExprMutator.o' libtool=no @AMDEPBACKSLASH@ 1204 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1205 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.o `test -f 'ControlStruct/ForExprMutator.cc' || echo '$(srcdir)/'`ControlStruct/ForExprMutator.cc 1267 1206 1268 1207 ControlStruct/driver_cfa_cpp-ForExprMutator.obj: ControlStruct/ForExprMutator.cc 1269 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ForExprMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.obj `if test -f 'ControlStruct/ForExprMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ForExprMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ForExprMutator.cc'; fi`1270 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Po1271 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/ForExprMutator.cc' object='ControlStruct/driver_cfa_cpp-ForExprMutator.obj' libtool=no @AMDEPBACKSLASH@1272 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1273 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.obj `if test -f 'ControlStruct/ForExprMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ForExprMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ForExprMutator.cc'; fi`1208 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-ForExprMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.obj `if test -f 'ControlStruct/ForExprMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ForExprMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ForExprMutator.cc'; fi` 1209 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Po 1210 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/ForExprMutator.cc' object='ControlStruct/driver_cfa_cpp-ForExprMutator.obj' libtool=no @AMDEPBACKSLASH@ 1211 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1212 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-ForExprMutator.obj `if test -f 'ControlStruct/ForExprMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ForExprMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ForExprMutator.cc'; fi` 1274 1213 1275 1214 ControlStruct/driver_cfa_cpp-LabelTypeChecker.o: ControlStruct/LabelTypeChecker.cc 1276 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelTypeChecker.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.o `test -f 'ControlStruct/LabelTypeChecker.cc' || echo '$(srcdir)/'`ControlStruct/LabelTypeChecker.cc1277 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Po1278 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelTypeChecker.cc' object='ControlStruct/driver_cfa_cpp-LabelTypeChecker.o' libtool=no @AMDEPBACKSLASH@1279 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1280 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.o `test -f 'ControlStruct/LabelTypeChecker.cc' || echo '$(srcdir)/'`ControlStruct/LabelTypeChecker.cc1215 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelTypeChecker.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.o `test -f 'ControlStruct/LabelTypeChecker.cc' || echo '$(srcdir)/'`ControlStruct/LabelTypeChecker.cc 1216 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Po 1217 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelTypeChecker.cc' object='ControlStruct/driver_cfa_cpp-LabelTypeChecker.o' libtool=no @AMDEPBACKSLASH@ 1218 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1219 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.o `test -f 'ControlStruct/LabelTypeChecker.cc' || echo '$(srcdir)/'`ControlStruct/LabelTypeChecker.cc 1281 1220 1282 1221 ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj: ControlStruct/LabelTypeChecker.cc 1283 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi`1284 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Po1285 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ControlStruct/LabelTypeChecker.cc' object='ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj' libtool=no @AMDEPBACKSLASH@1286 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1287 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi`1222 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi` 1223 @am__fastdepCXX_TRUE@ $(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelTypeChecker.Po 1224 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ControlStruct/LabelTypeChecker.cc' object='ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj' libtool=no @AMDEPBACKSLASH@ 1225 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1226 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi` 1288 1227 1289 1228 Designators/driver_cfa_cpp-Processor.o: Designators/Processor.cc 1290 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/driver_cfa_cpp-Processor.o -MD -MP -MF Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo -c -o Designators/driver_cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc1291 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po1292 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Designators/Processor.cc' object='Designators/driver_cfa_cpp-Processor.o' libtool=no @AMDEPBACKSLASH@1293 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1294 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/driver_cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc1229 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/driver_cfa_cpp-Processor.o -MD -MP -MF Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo -c -o Designators/driver_cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc 1230 @am__fastdepCXX_TRUE@ $(am__mv) Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po 1231 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Designators/Processor.cc' object='Designators/driver_cfa_cpp-Processor.o' libtool=no @AMDEPBACKSLASH@ 1232 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1233 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/driver_cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc 1295 1234 1296 1235 Designators/driver_cfa_cpp-Processor.obj: Designators/Processor.cc 1297 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/driver_cfa_cpp-Processor.obj -MD -MP -MF Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo -c -o Designators/driver_cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi`1298 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po1299 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Designators/Processor.cc' object='Designators/driver_cfa_cpp-Processor.obj' libtool=no @AMDEPBACKSLASH@1300 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1301 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/driver_cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi`1236 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/driver_cfa_cpp-Processor.obj -MD -MP -MF Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo -c -o Designators/driver_cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi` 1237 @am__fastdepCXX_TRUE@ $(am__mv) Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po 1238 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Designators/Processor.cc' object='Designators/driver_cfa_cpp-Processor.obj' libtool=no @AMDEPBACKSLASH@ 1239 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1240 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/driver_cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi` 1302 1241 1303 1242 GenPoly/driver_cfa_cpp-Box.o: GenPoly/Box.cc 1304 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Box.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo -c -o GenPoly/driver_cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc1305 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Po1306 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Box.cc' object='GenPoly/driver_cfa_cpp-Box.o' libtool=no @AMDEPBACKSLASH@1307 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1308 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc1243 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Box.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo -c -o GenPoly/driver_cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc 1244 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Po 1245 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Box.cc' object='GenPoly/driver_cfa_cpp-Box.o' libtool=no @AMDEPBACKSLASH@ 1246 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1247 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc 1309 1248 1310 1249 GenPoly/driver_cfa_cpp-Box.obj: GenPoly/Box.cc 1311 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Box.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo -c -o GenPoly/driver_cfa_cpp-Box.obj `if test -f 'GenPoly/Box.cc'; then $(CYGPATH_W) 'GenPoly/Box.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Box.cc'; fi`1312 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Po1313 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Box.cc' object='GenPoly/driver_cfa_cpp-Box.obj' libtool=no @AMDEPBACKSLASH@1314 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1315 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Box.obj `if test -f 'GenPoly/Box.cc'; then $(CYGPATH_W) 'GenPoly/Box.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Box.cc'; fi`1250 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Box.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo -c -o GenPoly/driver_cfa_cpp-Box.obj `if test -f 'GenPoly/Box.cc'; then $(CYGPATH_W) 'GenPoly/Box.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Box.cc'; fi` 1251 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Po 1252 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Box.cc' object='GenPoly/driver_cfa_cpp-Box.obj' libtool=no @AMDEPBACKSLASH@ 1253 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1254 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Box.obj `if test -f 'GenPoly/Box.cc'; then $(CYGPATH_W) 'GenPoly/Box.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Box.cc'; fi` 1316 1255 1317 1256 GenPoly/driver_cfa_cpp-GenPoly.o: GenPoly/GenPoly.cc 1318 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-GenPoly.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo -c -o GenPoly/driver_cfa_cpp-GenPoly.o `test -f 'GenPoly/GenPoly.cc' || echo '$(srcdir)/'`GenPoly/GenPoly.cc1319 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Po1320 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/GenPoly.cc' object='GenPoly/driver_cfa_cpp-GenPoly.o' libtool=no @AMDEPBACKSLASH@1321 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1322 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-GenPoly.o `test -f 'GenPoly/GenPoly.cc' || echo '$(srcdir)/'`GenPoly/GenPoly.cc1257 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-GenPoly.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo -c -o GenPoly/driver_cfa_cpp-GenPoly.o `test -f 'GenPoly/GenPoly.cc' || echo '$(srcdir)/'`GenPoly/GenPoly.cc 1258 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Po 1259 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/GenPoly.cc' object='GenPoly/driver_cfa_cpp-GenPoly.o' libtool=no @AMDEPBACKSLASH@ 1260 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1261 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-GenPoly.o `test -f 'GenPoly/GenPoly.cc' || echo '$(srcdir)/'`GenPoly/GenPoly.cc 1323 1262 1324 1263 GenPoly/driver_cfa_cpp-GenPoly.obj: GenPoly/GenPoly.cc 1325 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-GenPoly.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo -c -o GenPoly/driver_cfa_cpp-GenPoly.obj `if test -f 'GenPoly/GenPoly.cc'; then $(CYGPATH_W) 'GenPoly/GenPoly.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/GenPoly.cc'; fi`1326 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Po1327 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/GenPoly.cc' object='GenPoly/driver_cfa_cpp-GenPoly.obj' libtool=no @AMDEPBACKSLASH@1328 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1329 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-GenPoly.obj `if test -f 'GenPoly/GenPoly.cc'; then $(CYGPATH_W) 'GenPoly/GenPoly.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/GenPoly.cc'; fi`1264 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-GenPoly.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo -c -o GenPoly/driver_cfa_cpp-GenPoly.obj `if test -f 'GenPoly/GenPoly.cc'; then $(CYGPATH_W) 'GenPoly/GenPoly.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/GenPoly.cc'; fi` 1265 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-GenPoly.Po 1266 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/GenPoly.cc' object='GenPoly/driver_cfa_cpp-GenPoly.obj' libtool=no @AMDEPBACKSLASH@ 1267 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1268 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-GenPoly.obj `if test -f 'GenPoly/GenPoly.cc'; then $(CYGPATH_W) 'GenPoly/GenPoly.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/GenPoly.cc'; fi` 1330 1269 1331 1270 GenPoly/driver_cfa_cpp-PolyMutator.o: GenPoly/PolyMutator.cc 1332 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-PolyMutator.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo -c -o GenPoly/driver_cfa_cpp-PolyMutator.o `test -f 'GenPoly/PolyMutator.cc' || echo '$(srcdir)/'`GenPoly/PolyMutator.cc1333 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Po1334 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/PolyMutator.cc' object='GenPoly/driver_cfa_cpp-PolyMutator.o' libtool=no @AMDEPBACKSLASH@1335 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1336 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-PolyMutator.o `test -f 'GenPoly/PolyMutator.cc' || echo '$(srcdir)/'`GenPoly/PolyMutator.cc1271 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-PolyMutator.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo -c -o GenPoly/driver_cfa_cpp-PolyMutator.o `test -f 'GenPoly/PolyMutator.cc' || echo '$(srcdir)/'`GenPoly/PolyMutator.cc 1272 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Po 1273 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/PolyMutator.cc' object='GenPoly/driver_cfa_cpp-PolyMutator.o' libtool=no @AMDEPBACKSLASH@ 1274 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1275 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-PolyMutator.o `test -f 'GenPoly/PolyMutator.cc' || echo '$(srcdir)/'`GenPoly/PolyMutator.cc 1337 1276 1338 1277 GenPoly/driver_cfa_cpp-PolyMutator.obj: GenPoly/PolyMutator.cc 1339 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-PolyMutator.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo -c -o GenPoly/driver_cfa_cpp-PolyMutator.obj `if test -f 'GenPoly/PolyMutator.cc'; then $(CYGPATH_W) 'GenPoly/PolyMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/PolyMutator.cc'; fi`1340 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Po1341 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/PolyMutator.cc' object='GenPoly/driver_cfa_cpp-PolyMutator.obj' libtool=no @AMDEPBACKSLASH@1342 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1343 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-PolyMutator.obj `if test -f 'GenPoly/PolyMutator.cc'; then $(CYGPATH_W) 'GenPoly/PolyMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/PolyMutator.cc'; fi`1278 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-PolyMutator.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo -c -o GenPoly/driver_cfa_cpp-PolyMutator.obj `if test -f 'GenPoly/PolyMutator.cc'; then $(CYGPATH_W) 'GenPoly/PolyMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/PolyMutator.cc'; fi` 1279 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-PolyMutator.Po 1280 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/PolyMutator.cc' object='GenPoly/driver_cfa_cpp-PolyMutator.obj' libtool=no @AMDEPBACKSLASH@ 1281 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1282 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-PolyMutator.obj `if test -f 'GenPoly/PolyMutator.cc'; then $(CYGPATH_W) 'GenPoly/PolyMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/PolyMutator.cc'; fi` 1344 1283 1345 1284 GenPoly/driver_cfa_cpp-ScrubTyVars.o: GenPoly/ScrubTyVars.cc 1346 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-ScrubTyVars.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.o `test -f 'GenPoly/ScrubTyVars.cc' || echo '$(srcdir)/'`GenPoly/ScrubTyVars.cc1347 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Po1348 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/ScrubTyVars.cc' object='GenPoly/driver_cfa_cpp-ScrubTyVars.o' libtool=no @AMDEPBACKSLASH@1349 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1350 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.o `test -f 'GenPoly/ScrubTyVars.cc' || echo '$(srcdir)/'`GenPoly/ScrubTyVars.cc1285 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-ScrubTyVars.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.o `test -f 'GenPoly/ScrubTyVars.cc' || echo '$(srcdir)/'`GenPoly/ScrubTyVars.cc 1286 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Po 1287 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/ScrubTyVars.cc' object='GenPoly/driver_cfa_cpp-ScrubTyVars.o' libtool=no @AMDEPBACKSLASH@ 1288 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1289 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.o `test -f 'GenPoly/ScrubTyVars.cc' || echo '$(srcdir)/'`GenPoly/ScrubTyVars.cc 1351 1290 1352 1291 GenPoly/driver_cfa_cpp-ScrubTyVars.obj: GenPoly/ScrubTyVars.cc 1353 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-ScrubTyVars.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.obj `if test -f 'GenPoly/ScrubTyVars.cc'; then $(CYGPATH_W) 'GenPoly/ScrubTyVars.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/ScrubTyVars.cc'; fi`1354 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Po1355 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/ScrubTyVars.cc' object='GenPoly/driver_cfa_cpp-ScrubTyVars.obj' libtool=no @AMDEPBACKSLASH@1356 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1357 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.obj `if test -f 'GenPoly/ScrubTyVars.cc'; then $(CYGPATH_W) 'GenPoly/ScrubTyVars.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/ScrubTyVars.cc'; fi`1292 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-ScrubTyVars.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.obj `if test -f 'GenPoly/ScrubTyVars.cc'; then $(CYGPATH_W) 'GenPoly/ScrubTyVars.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/ScrubTyVars.cc'; fi` 1293 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-ScrubTyVars.Po 1294 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/ScrubTyVars.cc' object='GenPoly/driver_cfa_cpp-ScrubTyVars.obj' libtool=no @AMDEPBACKSLASH@ 1295 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1296 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-ScrubTyVars.obj `if test -f 'GenPoly/ScrubTyVars.cc'; then $(CYGPATH_W) 'GenPoly/ScrubTyVars.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/ScrubTyVars.cc'; fi` 1358 1297 1359 1298 GenPoly/driver_cfa_cpp-Lvalue.o: GenPoly/Lvalue.cc 1360 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Lvalue.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo -c -o GenPoly/driver_cfa_cpp-Lvalue.o `test -f 'GenPoly/Lvalue.cc' || echo '$(srcdir)/'`GenPoly/Lvalue.cc1361 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Po1362 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Lvalue.cc' object='GenPoly/driver_cfa_cpp-Lvalue.o' libtool=no @AMDEPBACKSLASH@1363 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1364 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Lvalue.o `test -f 'GenPoly/Lvalue.cc' || echo '$(srcdir)/'`GenPoly/Lvalue.cc1299 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Lvalue.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo -c -o GenPoly/driver_cfa_cpp-Lvalue.o `test -f 'GenPoly/Lvalue.cc' || echo '$(srcdir)/'`GenPoly/Lvalue.cc 1300 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Po 1301 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Lvalue.cc' object='GenPoly/driver_cfa_cpp-Lvalue.o' libtool=no @AMDEPBACKSLASH@ 1302 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1303 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Lvalue.o `test -f 'GenPoly/Lvalue.cc' || echo '$(srcdir)/'`GenPoly/Lvalue.cc 1365 1304 1366 1305 GenPoly/driver_cfa_cpp-Lvalue.obj: GenPoly/Lvalue.cc 1367 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Lvalue.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo -c -o GenPoly/driver_cfa_cpp-Lvalue.obj `if test -f 'GenPoly/Lvalue.cc'; then $(CYGPATH_W) 'GenPoly/Lvalue.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Lvalue.cc'; fi`1368 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Po1369 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Lvalue.cc' object='GenPoly/driver_cfa_cpp-Lvalue.obj' libtool=no @AMDEPBACKSLASH@1370 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1371 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Lvalue.obj `if test -f 'GenPoly/Lvalue.cc'; then $(CYGPATH_W) 'GenPoly/Lvalue.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Lvalue.cc'; fi`1306 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Lvalue.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo -c -o GenPoly/driver_cfa_cpp-Lvalue.obj `if test -f 'GenPoly/Lvalue.cc'; then $(CYGPATH_W) 'GenPoly/Lvalue.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Lvalue.cc'; fi` 1307 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Lvalue.Po 1308 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Lvalue.cc' object='GenPoly/driver_cfa_cpp-Lvalue.obj' libtool=no @AMDEPBACKSLASH@ 1309 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1310 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Lvalue.obj `if test -f 'GenPoly/Lvalue.cc'; then $(CYGPATH_W) 'GenPoly/Lvalue.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Lvalue.cc'; fi` 1372 1311 1373 1312 GenPoly/driver_cfa_cpp-Specialize.o: GenPoly/Specialize.cc 1374 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Specialize.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo -c -o GenPoly/driver_cfa_cpp-Specialize.o `test -f 'GenPoly/Specialize.cc' || echo '$(srcdir)/'`GenPoly/Specialize.cc1375 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Po1376 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Specialize.cc' object='GenPoly/driver_cfa_cpp-Specialize.o' libtool=no @AMDEPBACKSLASH@1377 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1378 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Specialize.o `test -f 'GenPoly/Specialize.cc' || echo '$(srcdir)/'`GenPoly/Specialize.cc1313 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Specialize.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo -c -o GenPoly/driver_cfa_cpp-Specialize.o `test -f 'GenPoly/Specialize.cc' || echo '$(srcdir)/'`GenPoly/Specialize.cc 1314 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Po 1315 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Specialize.cc' object='GenPoly/driver_cfa_cpp-Specialize.o' libtool=no @AMDEPBACKSLASH@ 1316 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1317 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Specialize.o `test -f 'GenPoly/Specialize.cc' || echo '$(srcdir)/'`GenPoly/Specialize.cc 1379 1318 1380 1319 GenPoly/driver_cfa_cpp-Specialize.obj: GenPoly/Specialize.cc 1381 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Specialize.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo -c -o GenPoly/driver_cfa_cpp-Specialize.obj `if test -f 'GenPoly/Specialize.cc'; then $(CYGPATH_W) 'GenPoly/Specialize.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Specialize.cc'; fi`1382 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Po1383 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/Specialize.cc' object='GenPoly/driver_cfa_cpp-Specialize.obj' libtool=no @AMDEPBACKSLASH@1384 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1385 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Specialize.obj `if test -f 'GenPoly/Specialize.cc'; then $(CYGPATH_W) 'GenPoly/Specialize.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Specialize.cc'; fi`1320 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Specialize.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo -c -o GenPoly/driver_cfa_cpp-Specialize.obj `if test -f 'GenPoly/Specialize.cc'; then $(CYGPATH_W) 'GenPoly/Specialize.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Specialize.cc'; fi` 1321 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-Specialize.Po 1322 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/Specialize.cc' object='GenPoly/driver_cfa_cpp-Specialize.obj' libtool=no @AMDEPBACKSLASH@ 1323 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1324 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-Specialize.obj `if test -f 'GenPoly/Specialize.cc'; then $(CYGPATH_W) 'GenPoly/Specialize.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Specialize.cc'; fi` 1386 1325 1387 1326 GenPoly/driver_cfa_cpp-CopyParams.o: GenPoly/CopyParams.cc 1388 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-CopyParams.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo -c -o GenPoly/driver_cfa_cpp-CopyParams.o `test -f 'GenPoly/CopyParams.cc' || echo '$(srcdir)/'`GenPoly/CopyParams.cc1389 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Po1390 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/CopyParams.cc' object='GenPoly/driver_cfa_cpp-CopyParams.o' libtool=no @AMDEPBACKSLASH@1391 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1392 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-CopyParams.o `test -f 'GenPoly/CopyParams.cc' || echo '$(srcdir)/'`GenPoly/CopyParams.cc1327 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-CopyParams.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo -c -o GenPoly/driver_cfa_cpp-CopyParams.o `test -f 'GenPoly/CopyParams.cc' || echo '$(srcdir)/'`GenPoly/CopyParams.cc 1328 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Po 1329 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/CopyParams.cc' object='GenPoly/driver_cfa_cpp-CopyParams.o' libtool=no @AMDEPBACKSLASH@ 1330 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1331 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-CopyParams.o `test -f 'GenPoly/CopyParams.cc' || echo '$(srcdir)/'`GenPoly/CopyParams.cc 1393 1332 1394 1333 GenPoly/driver_cfa_cpp-CopyParams.obj: GenPoly/CopyParams.cc 1395 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-CopyParams.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo -c -o GenPoly/driver_cfa_cpp-CopyParams.obj `if test -f 'GenPoly/CopyParams.cc'; then $(CYGPATH_W) 'GenPoly/CopyParams.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/CopyParams.cc'; fi`1396 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Po1397 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/CopyParams.cc' object='GenPoly/driver_cfa_cpp-CopyParams.obj' libtool=no @AMDEPBACKSLASH@1398 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1399 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-CopyParams.obj `if test -f 'GenPoly/CopyParams.cc'; then $(CYGPATH_W) 'GenPoly/CopyParams.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/CopyParams.cc'; fi`1334 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-CopyParams.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo -c -o GenPoly/driver_cfa_cpp-CopyParams.obj `if test -f 'GenPoly/CopyParams.cc'; then $(CYGPATH_W) 'GenPoly/CopyParams.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/CopyParams.cc'; fi` 1335 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Po 1336 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/CopyParams.cc' object='GenPoly/driver_cfa_cpp-CopyParams.obj' libtool=no @AMDEPBACKSLASH@ 1337 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1338 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-CopyParams.obj `if test -f 'GenPoly/CopyParams.cc'; then $(CYGPATH_W) 'GenPoly/CopyParams.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/CopyParams.cc'; fi` 1400 1339 1401 1340 GenPoly/driver_cfa_cpp-FindFunction.o: GenPoly/FindFunction.cc 1402 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-FindFunction.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo -c -o GenPoly/driver_cfa_cpp-FindFunction.o `test -f 'GenPoly/FindFunction.cc' || echo '$(srcdir)/'`GenPoly/FindFunction.cc1403 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Po1404 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/FindFunction.cc' object='GenPoly/driver_cfa_cpp-FindFunction.o' libtool=no @AMDEPBACKSLASH@1405 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1406 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-FindFunction.o `test -f 'GenPoly/FindFunction.cc' || echo '$(srcdir)/'`GenPoly/FindFunction.cc1341 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-FindFunction.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo -c -o GenPoly/driver_cfa_cpp-FindFunction.o `test -f 'GenPoly/FindFunction.cc' || echo '$(srcdir)/'`GenPoly/FindFunction.cc 1342 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Po 1343 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/FindFunction.cc' object='GenPoly/driver_cfa_cpp-FindFunction.o' libtool=no @AMDEPBACKSLASH@ 1344 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1345 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-FindFunction.o `test -f 'GenPoly/FindFunction.cc' || echo '$(srcdir)/'`GenPoly/FindFunction.cc 1407 1346 1408 1347 GenPoly/driver_cfa_cpp-FindFunction.obj: GenPoly/FindFunction.cc 1409 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-FindFunction.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo -c -o GenPoly/driver_cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi`1410 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Po1411 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/FindFunction.cc' object='GenPoly/driver_cfa_cpp-FindFunction.obj' libtool=no @AMDEPBACKSLASH@1412 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1413 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi`1348 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-FindFunction.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo -c -o GenPoly/driver_cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi` 1349 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-FindFunction.Po 1350 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/FindFunction.cc' object='GenPoly/driver_cfa_cpp-FindFunction.obj' libtool=no @AMDEPBACKSLASH@ 1351 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1352 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi` 1414 1353 1415 1354 GenPoly/driver_cfa_cpp-DeclMutator.o: GenPoly/DeclMutator.cc 1416 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-DeclMutator.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo -c -o GenPoly/driver_cfa_cpp-DeclMutator.o `test -f 'GenPoly/DeclMutator.cc' || echo '$(srcdir)/'`GenPoly/DeclMutator.cc1417 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Po1418 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/DeclMutator.cc' object='GenPoly/driver_cfa_cpp-DeclMutator.o' libtool=no @AMDEPBACKSLASH@1419 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1420 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-DeclMutator.o `test -f 'GenPoly/DeclMutator.cc' || echo '$(srcdir)/'`GenPoly/DeclMutator.cc1355 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-DeclMutator.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo -c -o GenPoly/driver_cfa_cpp-DeclMutator.o `test -f 'GenPoly/DeclMutator.cc' || echo '$(srcdir)/'`GenPoly/DeclMutator.cc 1356 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Po 1357 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/DeclMutator.cc' object='GenPoly/driver_cfa_cpp-DeclMutator.o' libtool=no @AMDEPBACKSLASH@ 1358 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1359 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-DeclMutator.o `test -f 'GenPoly/DeclMutator.cc' || echo '$(srcdir)/'`GenPoly/DeclMutator.cc 1421 1360 1422 1361 GenPoly/driver_cfa_cpp-DeclMutator.obj: GenPoly/DeclMutator.cc 1423 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-DeclMutator.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo -c -o GenPoly/driver_cfa_cpp-DeclMutator.obj `if test -f 'GenPoly/DeclMutator.cc'; then $(CYGPATH_W) 'GenPoly/DeclMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/DeclMutator.cc'; fi` 1424 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Po 1425 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='GenPoly/DeclMutator.cc' object='GenPoly/driver_cfa_cpp-DeclMutator.obj' libtool=no @AMDEPBACKSLASH@ 1426 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1427 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-DeclMutator.obj `if test -f 'GenPoly/DeclMutator.cc'; then $(CYGPATH_W) 'GenPoly/DeclMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/DeclMutator.cc'; fi` 1428 1429 InitTweak/driver_cfa_cpp-GenInit.o: InitTweak/GenInit.cc 1430 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-GenInit.o -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Tpo -c -o InitTweak/driver_cfa_cpp-GenInit.o `test -f 'InitTweak/GenInit.cc' || echo '$(srcdir)/'`InitTweak/GenInit.cc 1431 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Po 1432 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/GenInit.cc' object='InitTweak/driver_cfa_cpp-GenInit.o' libtool=no @AMDEPBACKSLASH@ 1433 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1434 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-GenInit.o `test -f 'InitTweak/GenInit.cc' || echo '$(srcdir)/'`InitTweak/GenInit.cc 1435 1436 InitTweak/driver_cfa_cpp-GenInit.obj: InitTweak/GenInit.cc 1437 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-GenInit.obj -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Tpo -c -o InitTweak/driver_cfa_cpp-GenInit.obj `if test -f 'InitTweak/GenInit.cc'; then $(CYGPATH_W) 'InitTweak/GenInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/GenInit.cc'; fi` 1438 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-GenInit.Po 1439 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/GenInit.cc' object='InitTweak/driver_cfa_cpp-GenInit.obj' libtool=no @AMDEPBACKSLASH@ 1440 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1441 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-GenInit.obj `if test -f 'InitTweak/GenInit.cc'; then $(CYGPATH_W) 'InitTweak/GenInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/GenInit.cc'; fi` 1442 1443 InitTweak/driver_cfa_cpp-FixInit.o: InitTweak/FixInit.cc 1444 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-FixInit.o -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Tpo -c -o InitTweak/driver_cfa_cpp-FixInit.o `test -f 'InitTweak/FixInit.cc' || echo '$(srcdir)/'`InitTweak/FixInit.cc 1445 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Po 1446 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/FixInit.cc' object='InitTweak/driver_cfa_cpp-FixInit.o' libtool=no @AMDEPBACKSLASH@ 1447 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1448 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-FixInit.o `test -f 'InitTweak/FixInit.cc' || echo '$(srcdir)/'`InitTweak/FixInit.cc 1449 1450 InitTweak/driver_cfa_cpp-FixInit.obj: InitTweak/FixInit.cc 1451 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-FixInit.obj -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Tpo -c -o InitTweak/driver_cfa_cpp-FixInit.obj `if test -f 'InitTweak/FixInit.cc'; then $(CYGPATH_W) 'InitTweak/FixInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/FixInit.cc'; fi` 1452 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-FixInit.Po 1453 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/FixInit.cc' object='InitTweak/driver_cfa_cpp-FixInit.obj' libtool=no @AMDEPBACKSLASH@ 1454 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1455 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-FixInit.obj `if test -f 'InitTweak/FixInit.cc'; then $(CYGPATH_W) 'InitTweak/FixInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/FixInit.cc'; fi` 1456 1457 InitTweak/driver_cfa_cpp-FixGlobalInit.o: InitTweak/FixGlobalInit.cc 1458 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-FixGlobalInit.o -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Tpo -c -o InitTweak/driver_cfa_cpp-FixGlobalInit.o `test -f 'InitTweak/FixGlobalInit.cc' || echo '$(srcdir)/'`InitTweak/FixGlobalInit.cc 1459 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Po 1460 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/FixGlobalInit.cc' object='InitTweak/driver_cfa_cpp-FixGlobalInit.o' libtool=no @AMDEPBACKSLASH@ 1461 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1462 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-FixGlobalInit.o `test -f 'InitTweak/FixGlobalInit.cc' || echo '$(srcdir)/'`InitTweak/FixGlobalInit.cc 1463 1464 InitTweak/driver_cfa_cpp-FixGlobalInit.obj: InitTweak/FixGlobalInit.cc 1465 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-FixGlobalInit.obj -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Tpo -c -o InitTweak/driver_cfa_cpp-FixGlobalInit.obj `if test -f 'InitTweak/FixGlobalInit.cc'; then $(CYGPATH_W) 'InitTweak/FixGlobalInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/FixGlobalInit.cc'; fi` 1466 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-FixGlobalInit.Po 1467 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/FixGlobalInit.cc' object='InitTweak/driver_cfa_cpp-FixGlobalInit.obj' libtool=no @AMDEPBACKSLASH@ 1468 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1469 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-FixGlobalInit.obj `if test -f 'InitTweak/FixGlobalInit.cc'; then $(CYGPATH_W) 'InitTweak/FixGlobalInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/FixGlobalInit.cc'; fi` 1470 1471 InitTweak/driver_cfa_cpp-InitTweak.o: InitTweak/InitTweak.cc 1472 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-InitTweak.o -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Tpo -c -o InitTweak/driver_cfa_cpp-InitTweak.o `test -f 'InitTweak/InitTweak.cc' || echo '$(srcdir)/'`InitTweak/InitTweak.cc 1473 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Po 1474 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/InitTweak.cc' object='InitTweak/driver_cfa_cpp-InitTweak.o' libtool=no @AMDEPBACKSLASH@ 1475 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1476 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-InitTweak.o `test -f 'InitTweak/InitTweak.cc' || echo '$(srcdir)/'`InitTweak/InitTweak.cc 1477 1478 InitTweak/driver_cfa_cpp-InitTweak.obj: InitTweak/InitTweak.cc 1479 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-InitTweak.obj -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Tpo -c -o InitTweak/driver_cfa_cpp-InitTweak.obj `if test -f 'InitTweak/InitTweak.cc'; then $(CYGPATH_W) 'InitTweak/InitTweak.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/InitTweak.cc'; fi` 1480 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-InitTweak.Po 1481 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='InitTweak/InitTweak.cc' object='InitTweak/driver_cfa_cpp-InitTweak.obj' libtool=no @AMDEPBACKSLASH@ 1482 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1483 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-InitTweak.obj `if test -f 'InitTweak/InitTweak.cc'; then $(CYGPATH_W) 'InitTweak/InitTweak.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/InitTweak.cc'; fi` 1362 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-DeclMutator.obj -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo -c -o GenPoly/driver_cfa_cpp-DeclMutator.obj `if test -f 'GenPoly/DeclMutator.cc'; then $(CYGPATH_W) 'GenPoly/DeclMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/DeclMutator.cc'; fi` 1363 @am__fastdepCXX_TRUE@ $(am__mv) GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Tpo GenPoly/$(DEPDIR)/driver_cfa_cpp-DeclMutator.Po 1364 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GenPoly/DeclMutator.cc' object='GenPoly/driver_cfa_cpp-DeclMutator.obj' libtool=no @AMDEPBACKSLASH@ 1365 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1366 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/driver_cfa_cpp-DeclMutator.obj `if test -f 'GenPoly/DeclMutator.cc'; then $(CYGPATH_W) 'GenPoly/DeclMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/DeclMutator.cc'; fi` 1367 1368 InitTweak/driver_cfa_cpp-RemoveInit.o: InitTweak/RemoveInit.cc 1369 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-RemoveInit.o -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Tpo -c -o InitTweak/driver_cfa_cpp-RemoveInit.o `test -f 'InitTweak/RemoveInit.cc' || echo '$(srcdir)/'`InitTweak/RemoveInit.cc 1370 @am__fastdepCXX_TRUE@ $(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Po 1371 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InitTweak/RemoveInit.cc' object='InitTweak/driver_cfa_cpp-RemoveInit.o' libtool=no @AMDEPBACKSLASH@ 1372 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1373 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-RemoveInit.o `test -f 'InitTweak/RemoveInit.cc' || echo '$(srcdir)/'`InitTweak/RemoveInit.cc 1374 1375 InitTweak/driver_cfa_cpp-RemoveInit.obj: InitTweak/RemoveInit.cc 1376 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/driver_cfa_cpp-RemoveInit.obj -MD -MP -MF InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Tpo -c -o InitTweak/driver_cfa_cpp-RemoveInit.obj `if test -f 'InitTweak/RemoveInit.cc'; then $(CYGPATH_W) 'InitTweak/RemoveInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/RemoveInit.cc'; fi` 1377 @am__fastdepCXX_TRUE@ $(am__mv) InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Tpo InitTweak/$(DEPDIR)/driver_cfa_cpp-RemoveInit.Po 1378 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='InitTweak/RemoveInit.cc' object='InitTweak/driver_cfa_cpp-RemoveInit.obj' libtool=no @AMDEPBACKSLASH@ 1379 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1380 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/driver_cfa_cpp-RemoveInit.obj `if test -f 'InitTweak/RemoveInit.cc'; then $(CYGPATH_W) 'InitTweak/RemoveInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/RemoveInit.cc'; fi` 1484 1381 1485 1382 Parser/driver_cfa_cpp-parser.o: Parser/parser.cc 1486 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parser.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo -c -o Parser/driver_cfa_cpp-parser.o `test -f 'Parser/parser.cc' || echo '$(srcdir)/'`Parser/parser.cc1487 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parser.Po1488 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/parser.cc' object='Parser/driver_cfa_cpp-parser.o' libtool=no @AMDEPBACKSLASH@1489 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1490 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parser.o `test -f 'Parser/parser.cc' || echo '$(srcdir)/'`Parser/parser.cc1383 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parser.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo -c -o Parser/driver_cfa_cpp-parser.o `test -f 'Parser/parser.cc' || echo '$(srcdir)/'`Parser/parser.cc 1384 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parser.Po 1385 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/parser.cc' object='Parser/driver_cfa_cpp-parser.o' libtool=no @AMDEPBACKSLASH@ 1386 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1387 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parser.o `test -f 'Parser/parser.cc' || echo '$(srcdir)/'`Parser/parser.cc 1491 1388 1492 1389 Parser/driver_cfa_cpp-parser.obj: Parser/parser.cc 1493 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parser.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo -c -o Parser/driver_cfa_cpp-parser.obj `if test -f 'Parser/parser.cc'; then $(CYGPATH_W) 'Parser/parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parser.cc'; fi`1494 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parser.Po1495 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/parser.cc' object='Parser/driver_cfa_cpp-parser.obj' libtool=no @AMDEPBACKSLASH@1496 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1497 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parser.obj `if test -f 'Parser/parser.cc'; then $(CYGPATH_W) 'Parser/parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parser.cc'; fi`1390 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parser.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo -c -o Parser/driver_cfa_cpp-parser.obj `if test -f 'Parser/parser.cc'; then $(CYGPATH_W) 'Parser/parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parser.cc'; fi` 1391 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parser.Po 1392 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/parser.cc' object='Parser/driver_cfa_cpp-parser.obj' libtool=no @AMDEPBACKSLASH@ 1393 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1394 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parser.obj `if test -f 'Parser/parser.cc'; then $(CYGPATH_W) 'Parser/parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parser.cc'; fi` 1498 1395 1499 1396 Parser/driver_cfa_cpp-lex.o: Parser/lex.cc 1500 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-lex.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo -c -o Parser/driver_cfa_cpp-lex.o `test -f 'Parser/lex.cc' || echo '$(srcdir)/'`Parser/lex.cc1501 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-lex.Po1502 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/lex.cc' object='Parser/driver_cfa_cpp-lex.o' libtool=no @AMDEPBACKSLASH@1503 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1504 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-lex.o `test -f 'Parser/lex.cc' || echo '$(srcdir)/'`Parser/lex.cc1397 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-lex.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo -c -o Parser/driver_cfa_cpp-lex.o `test -f 'Parser/lex.cc' || echo '$(srcdir)/'`Parser/lex.cc 1398 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-lex.Po 1399 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/lex.cc' object='Parser/driver_cfa_cpp-lex.o' libtool=no @AMDEPBACKSLASH@ 1400 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1401 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-lex.o `test -f 'Parser/lex.cc' || echo '$(srcdir)/'`Parser/lex.cc 1505 1402 1506 1403 Parser/driver_cfa_cpp-lex.obj: Parser/lex.cc 1507 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-lex.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo -c -o Parser/driver_cfa_cpp-lex.obj `if test -f 'Parser/lex.cc'; then $(CYGPATH_W) 'Parser/lex.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/lex.cc'; fi`1508 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-lex.Po1509 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/lex.cc' object='Parser/driver_cfa_cpp-lex.obj' libtool=no @AMDEPBACKSLASH@1510 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1511 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-lex.obj `if test -f 'Parser/lex.cc'; then $(CYGPATH_W) 'Parser/lex.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/lex.cc'; fi`1404 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-lex.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo -c -o Parser/driver_cfa_cpp-lex.obj `if test -f 'Parser/lex.cc'; then $(CYGPATH_W) 'Parser/lex.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/lex.cc'; fi` 1405 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-lex.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-lex.Po 1406 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/lex.cc' object='Parser/driver_cfa_cpp-lex.obj' libtool=no @AMDEPBACKSLASH@ 1407 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1408 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-lex.obj `if test -f 'Parser/lex.cc'; then $(CYGPATH_W) 'Parser/lex.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/lex.cc'; fi` 1512 1409 1513 1410 Parser/driver_cfa_cpp-TypedefTable.o: Parser/TypedefTable.cc 1514 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypedefTable.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo -c -o Parser/driver_cfa_cpp-TypedefTable.o `test -f 'Parser/TypedefTable.cc' || echo '$(srcdir)/'`Parser/TypedefTable.cc1515 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Po1516 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/TypedefTable.cc' object='Parser/driver_cfa_cpp-TypedefTable.o' libtool=no @AMDEPBACKSLASH@1517 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1518 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypedefTable.o `test -f 'Parser/TypedefTable.cc' || echo '$(srcdir)/'`Parser/TypedefTable.cc1411 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypedefTable.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo -c -o Parser/driver_cfa_cpp-TypedefTable.o `test -f 'Parser/TypedefTable.cc' || echo '$(srcdir)/'`Parser/TypedefTable.cc 1412 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Po 1413 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/TypedefTable.cc' object='Parser/driver_cfa_cpp-TypedefTable.o' libtool=no @AMDEPBACKSLASH@ 1414 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1415 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypedefTable.o `test -f 'Parser/TypedefTable.cc' || echo '$(srcdir)/'`Parser/TypedefTable.cc 1519 1416 1520 1417 Parser/driver_cfa_cpp-TypedefTable.obj: Parser/TypedefTable.cc 1521 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypedefTable.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo -c -o Parser/driver_cfa_cpp-TypedefTable.obj `if test -f 'Parser/TypedefTable.cc'; then $(CYGPATH_W) 'Parser/TypedefTable.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypedefTable.cc'; fi`1522 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Po1523 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/TypedefTable.cc' object='Parser/driver_cfa_cpp-TypedefTable.obj' libtool=no @AMDEPBACKSLASH@1524 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1525 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypedefTable.obj `if test -f 'Parser/TypedefTable.cc'; then $(CYGPATH_W) 'Parser/TypedefTable.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypedefTable.cc'; fi`1418 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypedefTable.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo -c -o Parser/driver_cfa_cpp-TypedefTable.obj `if test -f 'Parser/TypedefTable.cc'; then $(CYGPATH_W) 'Parser/TypedefTable.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypedefTable.cc'; fi` 1419 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypedefTable.Po 1420 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/TypedefTable.cc' object='Parser/driver_cfa_cpp-TypedefTable.obj' libtool=no @AMDEPBACKSLASH@ 1421 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1422 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypedefTable.obj `if test -f 'Parser/TypedefTable.cc'; then $(CYGPATH_W) 'Parser/TypedefTable.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypedefTable.cc'; fi` 1526 1423 1527 1424 Parser/driver_cfa_cpp-ParseNode.o: Parser/ParseNode.cc 1528 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ParseNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo -c -o Parser/driver_cfa_cpp-ParseNode.o `test -f 'Parser/ParseNode.cc' || echo '$(srcdir)/'`Parser/ParseNode.cc1529 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Po1530 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/ParseNode.cc' object='Parser/driver_cfa_cpp-ParseNode.o' libtool=no @AMDEPBACKSLASH@1531 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1532 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ParseNode.o `test -f 'Parser/ParseNode.cc' || echo '$(srcdir)/'`Parser/ParseNode.cc1425 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ParseNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo -c -o Parser/driver_cfa_cpp-ParseNode.o `test -f 'Parser/ParseNode.cc' || echo '$(srcdir)/'`Parser/ParseNode.cc 1426 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Po 1427 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/ParseNode.cc' object='Parser/driver_cfa_cpp-ParseNode.o' libtool=no @AMDEPBACKSLASH@ 1428 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1429 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ParseNode.o `test -f 'Parser/ParseNode.cc' || echo '$(srcdir)/'`Parser/ParseNode.cc 1533 1430 1534 1431 Parser/driver_cfa_cpp-ParseNode.obj: Parser/ParseNode.cc 1535 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ParseNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo -c -o Parser/driver_cfa_cpp-ParseNode.obj `if test -f 'Parser/ParseNode.cc'; then $(CYGPATH_W) 'Parser/ParseNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ParseNode.cc'; fi`1536 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Po1537 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/ParseNode.cc' object='Parser/driver_cfa_cpp-ParseNode.obj' libtool=no @AMDEPBACKSLASH@1538 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1539 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ParseNode.obj `if test -f 'Parser/ParseNode.cc'; then $(CYGPATH_W) 'Parser/ParseNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ParseNode.cc'; fi`1432 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ParseNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo -c -o Parser/driver_cfa_cpp-ParseNode.obj `if test -f 'Parser/ParseNode.cc'; then $(CYGPATH_W) 'Parser/ParseNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ParseNode.cc'; fi` 1433 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ParseNode.Po 1434 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/ParseNode.cc' object='Parser/driver_cfa_cpp-ParseNode.obj' libtool=no @AMDEPBACKSLASH@ 1435 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1436 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ParseNode.obj `if test -f 'Parser/ParseNode.cc'; then $(CYGPATH_W) 'Parser/ParseNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ParseNode.cc'; fi` 1540 1437 1541 1438 Parser/driver_cfa_cpp-DeclarationNode.o: Parser/DeclarationNode.cc 1542 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-DeclarationNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo -c -o Parser/driver_cfa_cpp-DeclarationNode.o `test -f 'Parser/DeclarationNode.cc' || echo '$(srcdir)/'`Parser/DeclarationNode.cc1543 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Po1544 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/DeclarationNode.cc' object='Parser/driver_cfa_cpp-DeclarationNode.o' libtool=no @AMDEPBACKSLASH@1545 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1546 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-DeclarationNode.o `test -f 'Parser/DeclarationNode.cc' || echo '$(srcdir)/'`Parser/DeclarationNode.cc1439 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-DeclarationNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo -c -o Parser/driver_cfa_cpp-DeclarationNode.o `test -f 'Parser/DeclarationNode.cc' || echo '$(srcdir)/'`Parser/DeclarationNode.cc 1440 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Po 1441 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/DeclarationNode.cc' object='Parser/driver_cfa_cpp-DeclarationNode.o' libtool=no @AMDEPBACKSLASH@ 1442 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1443 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-DeclarationNode.o `test -f 'Parser/DeclarationNode.cc' || echo '$(srcdir)/'`Parser/DeclarationNode.cc 1547 1444 1548 1445 Parser/driver_cfa_cpp-DeclarationNode.obj: Parser/DeclarationNode.cc 1549 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-DeclarationNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo -c -o Parser/driver_cfa_cpp-DeclarationNode.obj `if test -f 'Parser/DeclarationNode.cc'; then $(CYGPATH_W) 'Parser/DeclarationNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/DeclarationNode.cc'; fi`1550 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Po1551 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/DeclarationNode.cc' object='Parser/driver_cfa_cpp-DeclarationNode.obj' libtool=no @AMDEPBACKSLASH@1552 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1553 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-DeclarationNode.obj `if test -f 'Parser/DeclarationNode.cc'; then $(CYGPATH_W) 'Parser/DeclarationNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/DeclarationNode.cc'; fi`1446 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-DeclarationNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo -c -o Parser/driver_cfa_cpp-DeclarationNode.obj `if test -f 'Parser/DeclarationNode.cc'; then $(CYGPATH_W) 'Parser/DeclarationNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/DeclarationNode.cc'; fi` 1447 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-DeclarationNode.Po 1448 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/DeclarationNode.cc' object='Parser/driver_cfa_cpp-DeclarationNode.obj' libtool=no @AMDEPBACKSLASH@ 1449 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1450 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-DeclarationNode.obj `if test -f 'Parser/DeclarationNode.cc'; then $(CYGPATH_W) 'Parser/DeclarationNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/DeclarationNode.cc'; fi` 1554 1451 1555 1452 Parser/driver_cfa_cpp-ExpressionNode.o: Parser/ExpressionNode.cc 1556 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ExpressionNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo -c -o Parser/driver_cfa_cpp-ExpressionNode.o `test -f 'Parser/ExpressionNode.cc' || echo '$(srcdir)/'`Parser/ExpressionNode.cc1557 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Po1558 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/ExpressionNode.cc' object='Parser/driver_cfa_cpp-ExpressionNode.o' libtool=no @AMDEPBACKSLASH@1559 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1560 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ExpressionNode.o `test -f 'Parser/ExpressionNode.cc' || echo '$(srcdir)/'`Parser/ExpressionNode.cc1453 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ExpressionNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo -c -o Parser/driver_cfa_cpp-ExpressionNode.o `test -f 'Parser/ExpressionNode.cc' || echo '$(srcdir)/'`Parser/ExpressionNode.cc 1454 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Po 1455 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/ExpressionNode.cc' object='Parser/driver_cfa_cpp-ExpressionNode.o' libtool=no @AMDEPBACKSLASH@ 1456 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1457 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ExpressionNode.o `test -f 'Parser/ExpressionNode.cc' || echo '$(srcdir)/'`Parser/ExpressionNode.cc 1561 1458 1562 1459 Parser/driver_cfa_cpp-ExpressionNode.obj: Parser/ExpressionNode.cc 1563 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ExpressionNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo -c -o Parser/driver_cfa_cpp-ExpressionNode.obj `if test -f 'Parser/ExpressionNode.cc'; then $(CYGPATH_W) 'Parser/ExpressionNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ExpressionNode.cc'; fi`1564 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Po1565 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/ExpressionNode.cc' object='Parser/driver_cfa_cpp-ExpressionNode.obj' libtool=no @AMDEPBACKSLASH@1566 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1567 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ExpressionNode.obj `if test -f 'Parser/ExpressionNode.cc'; then $(CYGPATH_W) 'Parser/ExpressionNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ExpressionNode.cc'; fi`1460 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-ExpressionNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo -c -o Parser/driver_cfa_cpp-ExpressionNode.obj `if test -f 'Parser/ExpressionNode.cc'; then $(CYGPATH_W) 'Parser/ExpressionNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ExpressionNode.cc'; fi` 1461 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-ExpressionNode.Po 1462 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/ExpressionNode.cc' object='Parser/driver_cfa_cpp-ExpressionNode.obj' libtool=no @AMDEPBACKSLASH@ 1463 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1464 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-ExpressionNode.obj `if test -f 'Parser/ExpressionNode.cc'; then $(CYGPATH_W) 'Parser/ExpressionNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ExpressionNode.cc'; fi` 1568 1465 1569 1466 Parser/driver_cfa_cpp-StatementNode.o: Parser/StatementNode.cc 1570 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-StatementNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo -c -o Parser/driver_cfa_cpp-StatementNode.o `test -f 'Parser/StatementNode.cc' || echo '$(srcdir)/'`Parser/StatementNode.cc1571 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Po1572 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/StatementNode.cc' object='Parser/driver_cfa_cpp-StatementNode.o' libtool=no @AMDEPBACKSLASH@1573 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1574 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-StatementNode.o `test -f 'Parser/StatementNode.cc' || echo '$(srcdir)/'`Parser/StatementNode.cc1467 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-StatementNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo -c -o Parser/driver_cfa_cpp-StatementNode.o `test -f 'Parser/StatementNode.cc' || echo '$(srcdir)/'`Parser/StatementNode.cc 1468 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Po 1469 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/StatementNode.cc' object='Parser/driver_cfa_cpp-StatementNode.o' libtool=no @AMDEPBACKSLASH@ 1470 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1471 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-StatementNode.o `test -f 'Parser/StatementNode.cc' || echo '$(srcdir)/'`Parser/StatementNode.cc 1575 1472 1576 1473 Parser/driver_cfa_cpp-StatementNode.obj: Parser/StatementNode.cc 1577 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-StatementNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo -c -o Parser/driver_cfa_cpp-StatementNode.obj `if test -f 'Parser/StatementNode.cc'; then $(CYGPATH_W) 'Parser/StatementNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/StatementNode.cc'; fi`1578 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Po1579 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/StatementNode.cc' object='Parser/driver_cfa_cpp-StatementNode.obj' libtool=no @AMDEPBACKSLASH@1580 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1581 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-StatementNode.obj `if test -f 'Parser/StatementNode.cc'; then $(CYGPATH_W) 'Parser/StatementNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/StatementNode.cc'; fi`1474 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-StatementNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo -c -o Parser/driver_cfa_cpp-StatementNode.obj `if test -f 'Parser/StatementNode.cc'; then $(CYGPATH_W) 'Parser/StatementNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/StatementNode.cc'; fi` 1475 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-StatementNode.Po 1476 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/StatementNode.cc' object='Parser/driver_cfa_cpp-StatementNode.obj' libtool=no @AMDEPBACKSLASH@ 1477 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1478 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-StatementNode.obj `if test -f 'Parser/StatementNode.cc'; then $(CYGPATH_W) 'Parser/StatementNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/StatementNode.cc'; fi` 1582 1479 1583 1480 Parser/driver_cfa_cpp-InitializerNode.o: Parser/InitializerNode.cc 1584 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-InitializerNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo -c -o Parser/driver_cfa_cpp-InitializerNode.o `test -f 'Parser/InitializerNode.cc' || echo '$(srcdir)/'`Parser/InitializerNode.cc1585 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Po1586 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/InitializerNode.cc' object='Parser/driver_cfa_cpp-InitializerNode.o' libtool=no @AMDEPBACKSLASH@1587 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1588 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-InitializerNode.o `test -f 'Parser/InitializerNode.cc' || echo '$(srcdir)/'`Parser/InitializerNode.cc1481 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-InitializerNode.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo -c -o Parser/driver_cfa_cpp-InitializerNode.o `test -f 'Parser/InitializerNode.cc' || echo '$(srcdir)/'`Parser/InitializerNode.cc 1482 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Po 1483 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/InitializerNode.cc' object='Parser/driver_cfa_cpp-InitializerNode.o' libtool=no @AMDEPBACKSLASH@ 1484 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1485 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-InitializerNode.o `test -f 'Parser/InitializerNode.cc' || echo '$(srcdir)/'`Parser/InitializerNode.cc 1589 1486 1590 1487 Parser/driver_cfa_cpp-InitializerNode.obj: Parser/InitializerNode.cc 1591 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-InitializerNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo -c -o Parser/driver_cfa_cpp-InitializerNode.obj `if test -f 'Parser/InitializerNode.cc'; then $(CYGPATH_W) 'Parser/InitializerNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/InitializerNode.cc'; fi`1592 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Po1593 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/InitializerNode.cc' object='Parser/driver_cfa_cpp-InitializerNode.obj' libtool=no @AMDEPBACKSLASH@1594 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1595 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-InitializerNode.obj `if test -f 'Parser/InitializerNode.cc'; then $(CYGPATH_W) 'Parser/InitializerNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/InitializerNode.cc'; fi`1488 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-InitializerNode.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo -c -o Parser/driver_cfa_cpp-InitializerNode.obj `if test -f 'Parser/InitializerNode.cc'; then $(CYGPATH_W) 'Parser/InitializerNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/InitializerNode.cc'; fi` 1489 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-InitializerNode.Po 1490 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/InitializerNode.cc' object='Parser/driver_cfa_cpp-InitializerNode.obj' libtool=no @AMDEPBACKSLASH@ 1491 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1492 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-InitializerNode.obj `if test -f 'Parser/InitializerNode.cc'; then $(CYGPATH_W) 'Parser/InitializerNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/InitializerNode.cc'; fi` 1596 1493 1597 1494 Parser/driver_cfa_cpp-TypeData.o: Parser/TypeData.cc 1598 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypeData.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo -c -o Parser/driver_cfa_cpp-TypeData.o `test -f 'Parser/TypeData.cc' || echo '$(srcdir)/'`Parser/TypeData.cc1599 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Po1600 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/TypeData.cc' object='Parser/driver_cfa_cpp-TypeData.o' libtool=no @AMDEPBACKSLASH@1601 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1602 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypeData.o `test -f 'Parser/TypeData.cc' || echo '$(srcdir)/'`Parser/TypeData.cc1495 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypeData.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo -c -o Parser/driver_cfa_cpp-TypeData.o `test -f 'Parser/TypeData.cc' || echo '$(srcdir)/'`Parser/TypeData.cc 1496 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Po 1497 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/TypeData.cc' object='Parser/driver_cfa_cpp-TypeData.o' libtool=no @AMDEPBACKSLASH@ 1498 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1499 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypeData.o `test -f 'Parser/TypeData.cc' || echo '$(srcdir)/'`Parser/TypeData.cc 1603 1500 1604 1501 Parser/driver_cfa_cpp-TypeData.obj: Parser/TypeData.cc 1605 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypeData.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo -c -o Parser/driver_cfa_cpp-TypeData.obj `if test -f 'Parser/TypeData.cc'; then $(CYGPATH_W) 'Parser/TypeData.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypeData.cc'; fi`1606 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Po1607 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/TypeData.cc' object='Parser/driver_cfa_cpp-TypeData.obj' libtool=no @AMDEPBACKSLASH@1608 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1609 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypeData.obj `if test -f 'Parser/TypeData.cc'; then $(CYGPATH_W) 'Parser/TypeData.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypeData.cc'; fi`1502 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-TypeData.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo -c -o Parser/driver_cfa_cpp-TypeData.obj `if test -f 'Parser/TypeData.cc'; then $(CYGPATH_W) 'Parser/TypeData.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypeData.cc'; fi` 1503 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-TypeData.Po 1504 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/TypeData.cc' object='Parser/driver_cfa_cpp-TypeData.obj' libtool=no @AMDEPBACKSLASH@ 1505 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1506 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-TypeData.obj `if test -f 'Parser/TypeData.cc'; then $(CYGPATH_W) 'Parser/TypeData.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypeData.cc'; fi` 1610 1507 1611 1508 Parser/driver_cfa_cpp-LinkageSpec.o: Parser/LinkageSpec.cc 1612 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-LinkageSpec.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo -c -o Parser/driver_cfa_cpp-LinkageSpec.o `test -f 'Parser/LinkageSpec.cc' || echo '$(srcdir)/'`Parser/LinkageSpec.cc1613 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Po1614 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/LinkageSpec.cc' object='Parser/driver_cfa_cpp-LinkageSpec.o' libtool=no @AMDEPBACKSLASH@1615 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1616 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-LinkageSpec.o `test -f 'Parser/LinkageSpec.cc' || echo '$(srcdir)/'`Parser/LinkageSpec.cc1509 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-LinkageSpec.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo -c -o Parser/driver_cfa_cpp-LinkageSpec.o `test -f 'Parser/LinkageSpec.cc' || echo '$(srcdir)/'`Parser/LinkageSpec.cc 1510 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Po 1511 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/LinkageSpec.cc' object='Parser/driver_cfa_cpp-LinkageSpec.o' libtool=no @AMDEPBACKSLASH@ 1512 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1513 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-LinkageSpec.o `test -f 'Parser/LinkageSpec.cc' || echo '$(srcdir)/'`Parser/LinkageSpec.cc 1617 1514 1618 1515 Parser/driver_cfa_cpp-LinkageSpec.obj: Parser/LinkageSpec.cc 1619 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-LinkageSpec.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo -c -o Parser/driver_cfa_cpp-LinkageSpec.obj `if test -f 'Parser/LinkageSpec.cc'; then $(CYGPATH_W) 'Parser/LinkageSpec.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/LinkageSpec.cc'; fi`1620 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Po1621 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/LinkageSpec.cc' object='Parser/driver_cfa_cpp-LinkageSpec.obj' libtool=no @AMDEPBACKSLASH@1622 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1623 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-LinkageSpec.obj `if test -f 'Parser/LinkageSpec.cc'; then $(CYGPATH_W) 'Parser/LinkageSpec.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/LinkageSpec.cc'; fi`1516 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-LinkageSpec.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo -c -o Parser/driver_cfa_cpp-LinkageSpec.obj `if test -f 'Parser/LinkageSpec.cc'; then $(CYGPATH_W) 'Parser/LinkageSpec.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/LinkageSpec.cc'; fi` 1517 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-LinkageSpec.Po 1518 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/LinkageSpec.cc' object='Parser/driver_cfa_cpp-LinkageSpec.obj' libtool=no @AMDEPBACKSLASH@ 1519 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1520 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-LinkageSpec.obj `if test -f 'Parser/LinkageSpec.cc'; then $(CYGPATH_W) 'Parser/LinkageSpec.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/LinkageSpec.cc'; fi` 1624 1521 1625 1522 Parser/driver_cfa_cpp-parseutility.o: Parser/parseutility.cc 1626 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parseutility.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo -c -o Parser/driver_cfa_cpp-parseutility.o `test -f 'Parser/parseutility.cc' || echo '$(srcdir)/'`Parser/parseutility.cc1627 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Po1628 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/parseutility.cc' object='Parser/driver_cfa_cpp-parseutility.o' libtool=no @AMDEPBACKSLASH@1629 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1630 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parseutility.o `test -f 'Parser/parseutility.cc' || echo '$(srcdir)/'`Parser/parseutility.cc1523 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parseutility.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo -c -o Parser/driver_cfa_cpp-parseutility.o `test -f 'Parser/parseutility.cc' || echo '$(srcdir)/'`Parser/parseutility.cc 1524 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Po 1525 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/parseutility.cc' object='Parser/driver_cfa_cpp-parseutility.o' libtool=no @AMDEPBACKSLASH@ 1526 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1527 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parseutility.o `test -f 'Parser/parseutility.cc' || echo '$(srcdir)/'`Parser/parseutility.cc 1631 1528 1632 1529 Parser/driver_cfa_cpp-parseutility.obj: Parser/parseutility.cc 1633 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parseutility.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo -c -o Parser/driver_cfa_cpp-parseutility.obj `if test -f 'Parser/parseutility.cc'; then $(CYGPATH_W) 'Parser/parseutility.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parseutility.cc'; fi`1634 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Po1635 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/parseutility.cc' object='Parser/driver_cfa_cpp-parseutility.obj' libtool=no @AMDEPBACKSLASH@1636 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1637 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parseutility.obj `if test -f 'Parser/parseutility.cc'; then $(CYGPATH_W) 'Parser/parseutility.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parseutility.cc'; fi`1530 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-parseutility.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo -c -o Parser/driver_cfa_cpp-parseutility.obj `if test -f 'Parser/parseutility.cc'; then $(CYGPATH_W) 'Parser/parseutility.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parseutility.cc'; fi` 1531 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-parseutility.Po 1532 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/parseutility.cc' object='Parser/driver_cfa_cpp-parseutility.obj' libtool=no @AMDEPBACKSLASH@ 1533 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1534 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-parseutility.obj `if test -f 'Parser/parseutility.cc'; then $(CYGPATH_W) 'Parser/parseutility.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parseutility.cc'; fi` 1638 1535 1639 1536 Parser/driver_cfa_cpp-Parser.o: Parser/Parser.cc 1640 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-Parser.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo -c -o Parser/driver_cfa_cpp-Parser.o `test -f 'Parser/Parser.cc' || echo '$(srcdir)/'`Parser/Parser.cc1641 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Po1642 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/Parser.cc' object='Parser/driver_cfa_cpp-Parser.o' libtool=no @AMDEPBACKSLASH@1643 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1644 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-Parser.o `test -f 'Parser/Parser.cc' || echo '$(srcdir)/'`Parser/Parser.cc1537 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-Parser.o -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo -c -o Parser/driver_cfa_cpp-Parser.o `test -f 'Parser/Parser.cc' || echo '$(srcdir)/'`Parser/Parser.cc 1538 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Po 1539 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/Parser.cc' object='Parser/driver_cfa_cpp-Parser.o' libtool=no @AMDEPBACKSLASH@ 1540 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1541 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-Parser.o `test -f 'Parser/Parser.cc' || echo '$(srcdir)/'`Parser/Parser.cc 1645 1542 1646 1543 Parser/driver_cfa_cpp-Parser.obj: Parser/Parser.cc 1647 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-Parser.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo -c -o Parser/driver_cfa_cpp-Parser.obj `if test -f 'Parser/Parser.cc'; then $(CYGPATH_W) 'Parser/Parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/Parser.cc'; fi`1648 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Po1649 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Parser/Parser.cc' object='Parser/driver_cfa_cpp-Parser.obj' libtool=no @AMDEPBACKSLASH@1650 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1651 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-Parser.obj `if test -f 'Parser/Parser.cc'; then $(CYGPATH_W) 'Parser/Parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/Parser.cc'; fi`1544 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/driver_cfa_cpp-Parser.obj -MD -MP -MF Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo -c -o Parser/driver_cfa_cpp-Parser.obj `if test -f 'Parser/Parser.cc'; then $(CYGPATH_W) 'Parser/Parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/Parser.cc'; fi` 1545 @am__fastdepCXX_TRUE@ $(am__mv) Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Tpo Parser/$(DEPDIR)/driver_cfa_cpp-Parser.Po 1546 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parser/Parser.cc' object='Parser/driver_cfa_cpp-Parser.obj' libtool=no @AMDEPBACKSLASH@ 1547 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1548 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/driver_cfa_cpp-Parser.obj `if test -f 'Parser/Parser.cc'; then $(CYGPATH_W) 'Parser/Parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/Parser.cc'; fi` 1652 1549 1653 1550 ResolvExpr/driver_cfa_cpp-AlternativeFinder.o: ResolvExpr/AlternativeFinder.cc 1654 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativeFinder.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.o `test -f 'ResolvExpr/AlternativeFinder.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativeFinder.cc1655 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Po1656 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AlternativeFinder.cc' object='ResolvExpr/driver_cfa_cpp-AlternativeFinder.o' libtool=no @AMDEPBACKSLASH@1657 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1658 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.o `test -f 'ResolvExpr/AlternativeFinder.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativeFinder.cc1551 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativeFinder.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.o `test -f 'ResolvExpr/AlternativeFinder.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativeFinder.cc 1552 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Po 1553 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AlternativeFinder.cc' object='ResolvExpr/driver_cfa_cpp-AlternativeFinder.o' libtool=no @AMDEPBACKSLASH@ 1554 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1555 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.o `test -f 'ResolvExpr/AlternativeFinder.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativeFinder.cc 1659 1556 1660 1557 ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj: ResolvExpr/AlternativeFinder.cc 1661 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj `if test -f 'ResolvExpr/AlternativeFinder.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativeFinder.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativeFinder.cc'; fi`1662 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Po1663 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AlternativeFinder.cc' object='ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj' libtool=no @AMDEPBACKSLASH@1664 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1665 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj `if test -f 'ResolvExpr/AlternativeFinder.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativeFinder.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativeFinder.cc'; fi`1558 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj `if test -f 'ResolvExpr/AlternativeFinder.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativeFinder.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativeFinder.cc'; fi` 1559 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativeFinder.Po 1560 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AlternativeFinder.cc' object='ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj' libtool=no @AMDEPBACKSLASH@ 1561 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1562 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativeFinder.obj `if test -f 'ResolvExpr/AlternativeFinder.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativeFinder.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativeFinder.cc'; fi` 1666 1563 1667 1564 ResolvExpr/driver_cfa_cpp-Alternative.o: ResolvExpr/Alternative.cc 1668 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Alternative.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo -c -o ResolvExpr/driver_cfa_cpp-Alternative.o `test -f 'ResolvExpr/Alternative.cc' || echo '$(srcdir)/'`ResolvExpr/Alternative.cc1669 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Po1670 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Alternative.cc' object='ResolvExpr/driver_cfa_cpp-Alternative.o' libtool=no @AMDEPBACKSLASH@1671 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1672 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Alternative.o `test -f 'ResolvExpr/Alternative.cc' || echo '$(srcdir)/'`ResolvExpr/Alternative.cc1565 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Alternative.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo -c -o ResolvExpr/driver_cfa_cpp-Alternative.o `test -f 'ResolvExpr/Alternative.cc' || echo '$(srcdir)/'`ResolvExpr/Alternative.cc 1566 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Po 1567 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Alternative.cc' object='ResolvExpr/driver_cfa_cpp-Alternative.o' libtool=no @AMDEPBACKSLASH@ 1568 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1569 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Alternative.o `test -f 'ResolvExpr/Alternative.cc' || echo '$(srcdir)/'`ResolvExpr/Alternative.cc 1673 1570 1674 1571 ResolvExpr/driver_cfa_cpp-Alternative.obj: ResolvExpr/Alternative.cc 1675 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Alternative.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo -c -o ResolvExpr/driver_cfa_cpp-Alternative.obj `if test -f 'ResolvExpr/Alternative.cc'; then $(CYGPATH_W) 'ResolvExpr/Alternative.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Alternative.cc'; fi`1676 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Po1677 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Alternative.cc' object='ResolvExpr/driver_cfa_cpp-Alternative.obj' libtool=no @AMDEPBACKSLASH@1678 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1679 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Alternative.obj `if test -f 'ResolvExpr/Alternative.cc'; then $(CYGPATH_W) 'ResolvExpr/Alternative.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Alternative.cc'; fi`1572 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Alternative.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo -c -o ResolvExpr/driver_cfa_cpp-Alternative.obj `if test -f 'ResolvExpr/Alternative.cc'; then $(CYGPATH_W) 'ResolvExpr/Alternative.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Alternative.cc'; fi` 1573 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Alternative.Po 1574 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Alternative.cc' object='ResolvExpr/driver_cfa_cpp-Alternative.obj' libtool=no @AMDEPBACKSLASH@ 1575 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1576 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Alternative.obj `if test -f 'ResolvExpr/Alternative.cc'; then $(CYGPATH_W) 'ResolvExpr/Alternative.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Alternative.cc'; fi` 1680 1577 1681 1578 ResolvExpr/driver_cfa_cpp-Unify.o: ResolvExpr/Unify.cc 1682 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Unify.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo -c -o ResolvExpr/driver_cfa_cpp-Unify.o `test -f 'ResolvExpr/Unify.cc' || echo '$(srcdir)/'`ResolvExpr/Unify.cc1683 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Po1684 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Unify.cc' object='ResolvExpr/driver_cfa_cpp-Unify.o' libtool=no @AMDEPBACKSLASH@1685 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1686 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Unify.o `test -f 'ResolvExpr/Unify.cc' || echo '$(srcdir)/'`ResolvExpr/Unify.cc1579 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Unify.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo -c -o ResolvExpr/driver_cfa_cpp-Unify.o `test -f 'ResolvExpr/Unify.cc' || echo '$(srcdir)/'`ResolvExpr/Unify.cc 1580 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Po 1581 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Unify.cc' object='ResolvExpr/driver_cfa_cpp-Unify.o' libtool=no @AMDEPBACKSLASH@ 1582 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1583 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Unify.o `test -f 'ResolvExpr/Unify.cc' || echo '$(srcdir)/'`ResolvExpr/Unify.cc 1687 1584 1688 1585 ResolvExpr/driver_cfa_cpp-Unify.obj: ResolvExpr/Unify.cc 1689 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Unify.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo -c -o ResolvExpr/driver_cfa_cpp-Unify.obj `if test -f 'ResolvExpr/Unify.cc'; then $(CYGPATH_W) 'ResolvExpr/Unify.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Unify.cc'; fi`1690 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Po1691 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Unify.cc' object='ResolvExpr/driver_cfa_cpp-Unify.obj' libtool=no @AMDEPBACKSLASH@1692 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1693 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Unify.obj `if test -f 'ResolvExpr/Unify.cc'; then $(CYGPATH_W) 'ResolvExpr/Unify.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Unify.cc'; fi`1586 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Unify.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo -c -o ResolvExpr/driver_cfa_cpp-Unify.obj `if test -f 'ResolvExpr/Unify.cc'; then $(CYGPATH_W) 'ResolvExpr/Unify.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Unify.cc'; fi` 1587 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Unify.Po 1588 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Unify.cc' object='ResolvExpr/driver_cfa_cpp-Unify.obj' libtool=no @AMDEPBACKSLASH@ 1589 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1590 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Unify.obj `if test -f 'ResolvExpr/Unify.cc'; then $(CYGPATH_W) 'ResolvExpr/Unify.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Unify.cc'; fi` 1694 1591 1695 1592 ResolvExpr/driver_cfa_cpp-PtrsAssignable.o: ResolvExpr/PtrsAssignable.cc 1696 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsAssignable.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.o `test -f 'ResolvExpr/PtrsAssignable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsAssignable.cc1697 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Po1698 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PtrsAssignable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsAssignable.o' libtool=no @AMDEPBACKSLASH@1699 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1700 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.o `test -f 'ResolvExpr/PtrsAssignable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsAssignable.cc1593 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsAssignable.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.o `test -f 'ResolvExpr/PtrsAssignable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsAssignable.cc 1594 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Po 1595 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PtrsAssignable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsAssignable.o' libtool=no @AMDEPBACKSLASH@ 1596 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1597 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.o `test -f 'ResolvExpr/PtrsAssignable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsAssignable.cc 1701 1598 1702 1599 ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj: ResolvExpr/PtrsAssignable.cc 1703 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj `if test -f 'ResolvExpr/PtrsAssignable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsAssignable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsAssignable.cc'; fi`1704 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Po1705 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PtrsAssignable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj' libtool=no @AMDEPBACKSLASH@1706 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1707 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj `if test -f 'ResolvExpr/PtrsAssignable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsAssignable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsAssignable.cc'; fi`1600 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj `if test -f 'ResolvExpr/PtrsAssignable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsAssignable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsAssignable.cc'; fi` 1601 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsAssignable.Po 1602 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PtrsAssignable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj' libtool=no @AMDEPBACKSLASH@ 1603 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1604 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsAssignable.obj `if test -f 'ResolvExpr/PtrsAssignable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsAssignable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsAssignable.cc'; fi` 1708 1605 1709 1606 ResolvExpr/driver_cfa_cpp-CommonType.o: ResolvExpr/CommonType.cc 1710 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CommonType.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo -c -o ResolvExpr/driver_cfa_cpp-CommonType.o `test -f 'ResolvExpr/CommonType.cc' || echo '$(srcdir)/'`ResolvExpr/CommonType.cc1711 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Po1712 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/CommonType.cc' object='ResolvExpr/driver_cfa_cpp-CommonType.o' libtool=no @AMDEPBACKSLASH@1713 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1714 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CommonType.o `test -f 'ResolvExpr/CommonType.cc' || echo '$(srcdir)/'`ResolvExpr/CommonType.cc1607 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CommonType.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo -c -o ResolvExpr/driver_cfa_cpp-CommonType.o `test -f 'ResolvExpr/CommonType.cc' || echo '$(srcdir)/'`ResolvExpr/CommonType.cc 1608 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Po 1609 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/CommonType.cc' object='ResolvExpr/driver_cfa_cpp-CommonType.o' libtool=no @AMDEPBACKSLASH@ 1610 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1611 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CommonType.o `test -f 'ResolvExpr/CommonType.cc' || echo '$(srcdir)/'`ResolvExpr/CommonType.cc 1715 1612 1716 1613 ResolvExpr/driver_cfa_cpp-CommonType.obj: ResolvExpr/CommonType.cc 1717 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CommonType.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo -c -o ResolvExpr/driver_cfa_cpp-CommonType.obj `if test -f 'ResolvExpr/CommonType.cc'; then $(CYGPATH_W) 'ResolvExpr/CommonType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CommonType.cc'; fi`1718 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Po1719 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/CommonType.cc' object='ResolvExpr/driver_cfa_cpp-CommonType.obj' libtool=no @AMDEPBACKSLASH@1720 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1721 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CommonType.obj `if test -f 'ResolvExpr/CommonType.cc'; then $(CYGPATH_W) 'ResolvExpr/CommonType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CommonType.cc'; fi`1614 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CommonType.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo -c -o ResolvExpr/driver_cfa_cpp-CommonType.obj `if test -f 'ResolvExpr/CommonType.cc'; then $(CYGPATH_W) 'ResolvExpr/CommonType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CommonType.cc'; fi` 1615 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CommonType.Po 1616 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/CommonType.cc' object='ResolvExpr/driver_cfa_cpp-CommonType.obj' libtool=no @AMDEPBACKSLASH@ 1617 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1618 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CommonType.obj `if test -f 'ResolvExpr/CommonType.cc'; then $(CYGPATH_W) 'ResolvExpr/CommonType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CommonType.cc'; fi` 1722 1619 1723 1620 ResolvExpr/driver_cfa_cpp-ConversionCost.o: ResolvExpr/ConversionCost.cc 1724 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ConversionCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.o `test -f 'ResolvExpr/ConversionCost.cc' || echo '$(srcdir)/'`ResolvExpr/ConversionCost.cc1725 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Po1726 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/ConversionCost.cc' object='ResolvExpr/driver_cfa_cpp-ConversionCost.o' libtool=no @AMDEPBACKSLASH@1727 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1728 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.o `test -f 'ResolvExpr/ConversionCost.cc' || echo '$(srcdir)/'`ResolvExpr/ConversionCost.cc1621 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ConversionCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.o `test -f 'ResolvExpr/ConversionCost.cc' || echo '$(srcdir)/'`ResolvExpr/ConversionCost.cc 1622 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Po 1623 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/ConversionCost.cc' object='ResolvExpr/driver_cfa_cpp-ConversionCost.o' libtool=no @AMDEPBACKSLASH@ 1624 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1625 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.o `test -f 'ResolvExpr/ConversionCost.cc' || echo '$(srcdir)/'`ResolvExpr/ConversionCost.cc 1729 1626 1730 1627 ResolvExpr/driver_cfa_cpp-ConversionCost.obj: ResolvExpr/ConversionCost.cc 1731 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ConversionCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.obj `if test -f 'ResolvExpr/ConversionCost.cc'; then $(CYGPATH_W) 'ResolvExpr/ConversionCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ConversionCost.cc'; fi`1732 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Po1733 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/ConversionCost.cc' object='ResolvExpr/driver_cfa_cpp-ConversionCost.obj' libtool=no @AMDEPBACKSLASH@1734 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1735 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.obj `if test -f 'ResolvExpr/ConversionCost.cc'; then $(CYGPATH_W) 'ResolvExpr/ConversionCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ConversionCost.cc'; fi`1628 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ConversionCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.obj `if test -f 'ResolvExpr/ConversionCost.cc'; then $(CYGPATH_W) 'ResolvExpr/ConversionCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ConversionCost.cc'; fi` 1629 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ConversionCost.Po 1630 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/ConversionCost.cc' object='ResolvExpr/driver_cfa_cpp-ConversionCost.obj' libtool=no @AMDEPBACKSLASH@ 1631 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1632 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ConversionCost.obj `if test -f 'ResolvExpr/ConversionCost.cc'; then $(CYGPATH_W) 'ResolvExpr/ConversionCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ConversionCost.cc'; fi` 1736 1633 1737 1634 ResolvExpr/driver_cfa_cpp-CastCost.o: ResolvExpr/CastCost.cc 1738 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CastCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-CastCost.o `test -f 'ResolvExpr/CastCost.cc' || echo '$(srcdir)/'`ResolvExpr/CastCost.cc1739 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Po1740 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/CastCost.cc' object='ResolvExpr/driver_cfa_cpp-CastCost.o' libtool=no @AMDEPBACKSLASH@1741 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1742 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CastCost.o `test -f 'ResolvExpr/CastCost.cc' || echo '$(srcdir)/'`ResolvExpr/CastCost.cc1635 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CastCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-CastCost.o `test -f 'ResolvExpr/CastCost.cc' || echo '$(srcdir)/'`ResolvExpr/CastCost.cc 1636 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Po 1637 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/CastCost.cc' object='ResolvExpr/driver_cfa_cpp-CastCost.o' libtool=no @AMDEPBACKSLASH@ 1638 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1639 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CastCost.o `test -f 'ResolvExpr/CastCost.cc' || echo '$(srcdir)/'`ResolvExpr/CastCost.cc 1743 1640 1744 1641 ResolvExpr/driver_cfa_cpp-CastCost.obj: ResolvExpr/CastCost.cc 1745 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CastCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-CastCost.obj `if test -f 'ResolvExpr/CastCost.cc'; then $(CYGPATH_W) 'ResolvExpr/CastCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CastCost.cc'; fi`1746 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Po1747 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/CastCost.cc' object='ResolvExpr/driver_cfa_cpp-CastCost.obj' libtool=no @AMDEPBACKSLASH@1748 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1749 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CastCost.obj `if test -f 'ResolvExpr/CastCost.cc'; then $(CYGPATH_W) 'ResolvExpr/CastCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CastCost.cc'; fi`1642 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-CastCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-CastCost.obj `if test -f 'ResolvExpr/CastCost.cc'; then $(CYGPATH_W) 'ResolvExpr/CastCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CastCost.cc'; fi` 1643 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-CastCost.Po 1644 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/CastCost.cc' object='ResolvExpr/driver_cfa_cpp-CastCost.obj' libtool=no @AMDEPBACKSLASH@ 1645 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1646 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-CastCost.obj `if test -f 'ResolvExpr/CastCost.cc'; then $(CYGPATH_W) 'ResolvExpr/CastCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CastCost.cc'; fi` 1750 1647 1751 1648 ResolvExpr/driver_cfa_cpp-PtrsCastable.o: ResolvExpr/PtrsCastable.cc 1752 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsCastable.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.o `test -f 'ResolvExpr/PtrsCastable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsCastable.cc1753 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Po1754 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PtrsCastable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsCastable.o' libtool=no @AMDEPBACKSLASH@1755 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1756 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.o `test -f 'ResolvExpr/PtrsCastable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsCastable.cc1649 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsCastable.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.o `test -f 'ResolvExpr/PtrsCastable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsCastable.cc 1650 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Po 1651 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PtrsCastable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsCastable.o' libtool=no @AMDEPBACKSLASH@ 1652 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1653 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.o `test -f 'ResolvExpr/PtrsCastable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsCastable.cc 1757 1654 1758 1655 ResolvExpr/driver_cfa_cpp-PtrsCastable.obj: ResolvExpr/PtrsCastable.cc 1759 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsCastable.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.obj `if test -f 'ResolvExpr/PtrsCastable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsCastable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsCastable.cc'; fi`1760 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Po1761 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PtrsCastable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsCastable.obj' libtool=no @AMDEPBACKSLASH@1762 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1763 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.obj `if test -f 'ResolvExpr/PtrsCastable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsCastable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsCastable.cc'; fi`1656 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PtrsCastable.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.obj `if test -f 'ResolvExpr/PtrsCastable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsCastable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsCastable.cc'; fi` 1657 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PtrsCastable.Po 1658 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PtrsCastable.cc' object='ResolvExpr/driver_cfa_cpp-PtrsCastable.obj' libtool=no @AMDEPBACKSLASH@ 1659 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1660 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PtrsCastable.obj `if test -f 'ResolvExpr/PtrsCastable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsCastable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsCastable.cc'; fi` 1764 1661 1765 1662 ResolvExpr/driver_cfa_cpp-AdjustExprType.o: ResolvExpr/AdjustExprType.cc 1766 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AdjustExprType.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.o `test -f 'ResolvExpr/AdjustExprType.cc' || echo '$(srcdir)/'`ResolvExpr/AdjustExprType.cc1767 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Po1768 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AdjustExprType.cc' object='ResolvExpr/driver_cfa_cpp-AdjustExprType.o' libtool=no @AMDEPBACKSLASH@1769 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1770 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.o `test -f 'ResolvExpr/AdjustExprType.cc' || echo '$(srcdir)/'`ResolvExpr/AdjustExprType.cc1663 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AdjustExprType.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.o `test -f 'ResolvExpr/AdjustExprType.cc' || echo '$(srcdir)/'`ResolvExpr/AdjustExprType.cc 1664 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Po 1665 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AdjustExprType.cc' object='ResolvExpr/driver_cfa_cpp-AdjustExprType.o' libtool=no @AMDEPBACKSLASH@ 1666 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1667 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.o `test -f 'ResolvExpr/AdjustExprType.cc' || echo '$(srcdir)/'`ResolvExpr/AdjustExprType.cc 1771 1668 1772 1669 ResolvExpr/driver_cfa_cpp-AdjustExprType.obj: ResolvExpr/AdjustExprType.cc 1773 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AdjustExprType.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.obj `if test -f 'ResolvExpr/AdjustExprType.cc'; then $(CYGPATH_W) 'ResolvExpr/AdjustExprType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AdjustExprType.cc'; fi`1774 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Po1775 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AdjustExprType.cc' object='ResolvExpr/driver_cfa_cpp-AdjustExprType.obj' libtool=no @AMDEPBACKSLASH@1776 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1777 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.obj `if test -f 'ResolvExpr/AdjustExprType.cc'; then $(CYGPATH_W) 'ResolvExpr/AdjustExprType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AdjustExprType.cc'; fi`1670 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AdjustExprType.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.obj `if test -f 'ResolvExpr/AdjustExprType.cc'; then $(CYGPATH_W) 'ResolvExpr/AdjustExprType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AdjustExprType.cc'; fi` 1671 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AdjustExprType.Po 1672 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AdjustExprType.cc' object='ResolvExpr/driver_cfa_cpp-AdjustExprType.obj' libtool=no @AMDEPBACKSLASH@ 1673 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1674 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AdjustExprType.obj `if test -f 'ResolvExpr/AdjustExprType.cc'; then $(CYGPATH_W) 'ResolvExpr/AdjustExprType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AdjustExprType.cc'; fi` 1778 1675 1779 1676 ResolvExpr/driver_cfa_cpp-AlternativePrinter.o: ResolvExpr/AlternativePrinter.cc 1780 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativePrinter.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.o `test -f 'ResolvExpr/AlternativePrinter.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativePrinter.cc1781 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Po1782 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AlternativePrinter.cc' object='ResolvExpr/driver_cfa_cpp-AlternativePrinter.o' libtool=no @AMDEPBACKSLASH@1783 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1784 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.o `test -f 'ResolvExpr/AlternativePrinter.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativePrinter.cc1677 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativePrinter.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.o `test -f 'ResolvExpr/AlternativePrinter.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativePrinter.cc 1678 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Po 1679 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AlternativePrinter.cc' object='ResolvExpr/driver_cfa_cpp-AlternativePrinter.o' libtool=no @AMDEPBACKSLASH@ 1680 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1681 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.o `test -f 'ResolvExpr/AlternativePrinter.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativePrinter.cc 1785 1682 1786 1683 ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj: ResolvExpr/AlternativePrinter.cc 1787 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj `if test -f 'ResolvExpr/AlternativePrinter.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativePrinter.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativePrinter.cc'; fi`1788 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Po1789 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/AlternativePrinter.cc' object='ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj' libtool=no @AMDEPBACKSLASH@1790 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1791 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj `if test -f 'ResolvExpr/AlternativePrinter.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativePrinter.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativePrinter.cc'; fi`1684 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj `if test -f 'ResolvExpr/AlternativePrinter.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativePrinter.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativePrinter.cc'; fi` 1685 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-AlternativePrinter.Po 1686 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/AlternativePrinter.cc' object='ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj' libtool=no @AMDEPBACKSLASH@ 1687 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1688 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-AlternativePrinter.obj `if test -f 'ResolvExpr/AlternativePrinter.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativePrinter.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativePrinter.cc'; fi` 1792 1689 1793 1690 ResolvExpr/driver_cfa_cpp-Resolver.o: ResolvExpr/Resolver.cc 1794 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Resolver.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo -c -o ResolvExpr/driver_cfa_cpp-Resolver.o `test -f 'ResolvExpr/Resolver.cc' || echo '$(srcdir)/'`ResolvExpr/Resolver.cc1795 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Po1796 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Resolver.cc' object='ResolvExpr/driver_cfa_cpp-Resolver.o' libtool=no @AMDEPBACKSLASH@1797 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1798 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Resolver.o `test -f 'ResolvExpr/Resolver.cc' || echo '$(srcdir)/'`ResolvExpr/Resolver.cc1691 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Resolver.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo -c -o ResolvExpr/driver_cfa_cpp-Resolver.o `test -f 'ResolvExpr/Resolver.cc' || echo '$(srcdir)/'`ResolvExpr/Resolver.cc 1692 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Po 1693 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Resolver.cc' object='ResolvExpr/driver_cfa_cpp-Resolver.o' libtool=no @AMDEPBACKSLASH@ 1694 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1695 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Resolver.o `test -f 'ResolvExpr/Resolver.cc' || echo '$(srcdir)/'`ResolvExpr/Resolver.cc 1799 1696 1800 1697 ResolvExpr/driver_cfa_cpp-Resolver.obj: ResolvExpr/Resolver.cc 1801 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Resolver.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo -c -o ResolvExpr/driver_cfa_cpp-Resolver.obj `if test -f 'ResolvExpr/Resolver.cc'; then $(CYGPATH_W) 'ResolvExpr/Resolver.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Resolver.cc'; fi`1802 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Po1803 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Resolver.cc' object='ResolvExpr/driver_cfa_cpp-Resolver.obj' libtool=no @AMDEPBACKSLASH@1804 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1805 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Resolver.obj `if test -f 'ResolvExpr/Resolver.cc'; then $(CYGPATH_W) 'ResolvExpr/Resolver.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Resolver.cc'; fi`1698 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Resolver.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo -c -o ResolvExpr/driver_cfa_cpp-Resolver.obj `if test -f 'ResolvExpr/Resolver.cc'; then $(CYGPATH_W) 'ResolvExpr/Resolver.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Resolver.cc'; fi` 1699 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Resolver.Po 1700 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Resolver.cc' object='ResolvExpr/driver_cfa_cpp-Resolver.obj' libtool=no @AMDEPBACKSLASH@ 1701 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1702 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Resolver.obj `if test -f 'ResolvExpr/Resolver.cc'; then $(CYGPATH_W) 'ResolvExpr/Resolver.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Resolver.cc'; fi` 1806 1703 1807 1704 ResolvExpr/driver_cfa_cpp-ResolveTypeof.o: ResolvExpr/ResolveTypeof.cc 1808 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ResolveTypeof.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.o `test -f 'ResolvExpr/ResolveTypeof.cc' || echo '$(srcdir)/'`ResolvExpr/ResolveTypeof.cc1809 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Po1810 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/ResolveTypeof.cc' object='ResolvExpr/driver_cfa_cpp-ResolveTypeof.o' libtool=no @AMDEPBACKSLASH@1811 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1812 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.o `test -f 'ResolvExpr/ResolveTypeof.cc' || echo '$(srcdir)/'`ResolvExpr/ResolveTypeof.cc1705 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ResolveTypeof.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.o `test -f 'ResolvExpr/ResolveTypeof.cc' || echo '$(srcdir)/'`ResolvExpr/ResolveTypeof.cc 1706 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Po 1707 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/ResolveTypeof.cc' object='ResolvExpr/driver_cfa_cpp-ResolveTypeof.o' libtool=no @AMDEPBACKSLASH@ 1708 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1709 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.o `test -f 'ResolvExpr/ResolveTypeof.cc' || echo '$(srcdir)/'`ResolvExpr/ResolveTypeof.cc 1813 1710 1814 1711 ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj: ResolvExpr/ResolveTypeof.cc 1815 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj `if test -f 'ResolvExpr/ResolveTypeof.cc'; then $(CYGPATH_W) 'ResolvExpr/ResolveTypeof.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ResolveTypeof.cc'; fi`1816 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Po1817 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/ResolveTypeof.cc' object='ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj' libtool=no @AMDEPBACKSLASH@1818 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1819 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj `if test -f 'ResolvExpr/ResolveTypeof.cc'; then $(CYGPATH_W) 'ResolvExpr/ResolveTypeof.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ResolveTypeof.cc'; fi`1712 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj `if test -f 'ResolvExpr/ResolveTypeof.cc'; then $(CYGPATH_W) 'ResolvExpr/ResolveTypeof.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ResolveTypeof.cc'; fi` 1713 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-ResolveTypeof.Po 1714 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/ResolveTypeof.cc' object='ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj' libtool=no @AMDEPBACKSLASH@ 1715 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1716 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-ResolveTypeof.obj `if test -f 'ResolvExpr/ResolveTypeof.cc'; then $(CYGPATH_W) 'ResolvExpr/ResolveTypeof.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ResolveTypeof.cc'; fi` 1820 1717 1821 1718 ResolvExpr/driver_cfa_cpp-RenameVars.o: ResolvExpr/RenameVars.cc 1822 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-RenameVars.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-RenameVars.o `test -f 'ResolvExpr/RenameVars.cc' || echo '$(srcdir)/'`ResolvExpr/RenameVars.cc1823 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Po1824 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/RenameVars.cc' object='ResolvExpr/driver_cfa_cpp-RenameVars.o' libtool=no @AMDEPBACKSLASH@1825 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1826 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-RenameVars.o `test -f 'ResolvExpr/RenameVars.cc' || echo '$(srcdir)/'`ResolvExpr/RenameVars.cc1719 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-RenameVars.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-RenameVars.o `test -f 'ResolvExpr/RenameVars.cc' || echo '$(srcdir)/'`ResolvExpr/RenameVars.cc 1720 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Po 1721 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/RenameVars.cc' object='ResolvExpr/driver_cfa_cpp-RenameVars.o' libtool=no @AMDEPBACKSLASH@ 1722 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1723 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-RenameVars.o `test -f 'ResolvExpr/RenameVars.cc' || echo '$(srcdir)/'`ResolvExpr/RenameVars.cc 1827 1724 1828 1725 ResolvExpr/driver_cfa_cpp-RenameVars.obj: ResolvExpr/RenameVars.cc 1829 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-RenameVars.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-RenameVars.obj `if test -f 'ResolvExpr/RenameVars.cc'; then $(CYGPATH_W) 'ResolvExpr/RenameVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/RenameVars.cc'; fi`1830 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Po1831 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/RenameVars.cc' object='ResolvExpr/driver_cfa_cpp-RenameVars.obj' libtool=no @AMDEPBACKSLASH@1832 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1833 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-RenameVars.obj `if test -f 'ResolvExpr/RenameVars.cc'; then $(CYGPATH_W) 'ResolvExpr/RenameVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/RenameVars.cc'; fi`1726 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-RenameVars.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-RenameVars.obj `if test -f 'ResolvExpr/RenameVars.cc'; then $(CYGPATH_W) 'ResolvExpr/RenameVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/RenameVars.cc'; fi` 1727 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-RenameVars.Po 1728 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/RenameVars.cc' object='ResolvExpr/driver_cfa_cpp-RenameVars.obj' libtool=no @AMDEPBACKSLASH@ 1729 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1730 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-RenameVars.obj `if test -f 'ResolvExpr/RenameVars.cc'; then $(CYGPATH_W) 'ResolvExpr/RenameVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/RenameVars.cc'; fi` 1834 1731 1835 1732 ResolvExpr/driver_cfa_cpp-FindOpenVars.o: ResolvExpr/FindOpenVars.cc 1836 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-FindOpenVars.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.o `test -f 'ResolvExpr/FindOpenVars.cc' || echo '$(srcdir)/'`ResolvExpr/FindOpenVars.cc1837 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Po1838 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/FindOpenVars.cc' object='ResolvExpr/driver_cfa_cpp-FindOpenVars.o' libtool=no @AMDEPBACKSLASH@1839 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1840 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.o `test -f 'ResolvExpr/FindOpenVars.cc' || echo '$(srcdir)/'`ResolvExpr/FindOpenVars.cc1733 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-FindOpenVars.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.o `test -f 'ResolvExpr/FindOpenVars.cc' || echo '$(srcdir)/'`ResolvExpr/FindOpenVars.cc 1734 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Po 1735 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/FindOpenVars.cc' object='ResolvExpr/driver_cfa_cpp-FindOpenVars.o' libtool=no @AMDEPBACKSLASH@ 1736 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1737 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.o `test -f 'ResolvExpr/FindOpenVars.cc' || echo '$(srcdir)/'`ResolvExpr/FindOpenVars.cc 1841 1738 1842 1739 ResolvExpr/driver_cfa_cpp-FindOpenVars.obj: ResolvExpr/FindOpenVars.cc 1843 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-FindOpenVars.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.obj `if test -f 'ResolvExpr/FindOpenVars.cc'; then $(CYGPATH_W) 'ResolvExpr/FindOpenVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/FindOpenVars.cc'; fi`1844 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Po1845 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/FindOpenVars.cc' object='ResolvExpr/driver_cfa_cpp-FindOpenVars.obj' libtool=no @AMDEPBACKSLASH@1846 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1847 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.obj `if test -f 'ResolvExpr/FindOpenVars.cc'; then $(CYGPATH_W) 'ResolvExpr/FindOpenVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/FindOpenVars.cc'; fi`1740 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-FindOpenVars.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.obj `if test -f 'ResolvExpr/FindOpenVars.cc'; then $(CYGPATH_W) 'ResolvExpr/FindOpenVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/FindOpenVars.cc'; fi` 1741 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-FindOpenVars.Po 1742 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/FindOpenVars.cc' object='ResolvExpr/driver_cfa_cpp-FindOpenVars.obj' libtool=no @AMDEPBACKSLASH@ 1743 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1744 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-FindOpenVars.obj `if test -f 'ResolvExpr/FindOpenVars.cc'; then $(CYGPATH_W) 'ResolvExpr/FindOpenVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/FindOpenVars.cc'; fi` 1848 1745 1849 1746 ResolvExpr/driver_cfa_cpp-PolyCost.o: ResolvExpr/PolyCost.cc 1850 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PolyCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-PolyCost.o `test -f 'ResolvExpr/PolyCost.cc' || echo '$(srcdir)/'`ResolvExpr/PolyCost.cc1851 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Po1852 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PolyCost.cc' object='ResolvExpr/driver_cfa_cpp-PolyCost.o' libtool=no @AMDEPBACKSLASH@1853 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1854 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PolyCost.o `test -f 'ResolvExpr/PolyCost.cc' || echo '$(srcdir)/'`ResolvExpr/PolyCost.cc1747 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PolyCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-PolyCost.o `test -f 'ResolvExpr/PolyCost.cc' || echo '$(srcdir)/'`ResolvExpr/PolyCost.cc 1748 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Po 1749 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PolyCost.cc' object='ResolvExpr/driver_cfa_cpp-PolyCost.o' libtool=no @AMDEPBACKSLASH@ 1750 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1751 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PolyCost.o `test -f 'ResolvExpr/PolyCost.cc' || echo '$(srcdir)/'`ResolvExpr/PolyCost.cc 1855 1752 1856 1753 ResolvExpr/driver_cfa_cpp-PolyCost.obj: ResolvExpr/PolyCost.cc 1857 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PolyCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-PolyCost.obj `if test -f 'ResolvExpr/PolyCost.cc'; then $(CYGPATH_W) 'ResolvExpr/PolyCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PolyCost.cc'; fi`1858 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Po1859 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/PolyCost.cc' object='ResolvExpr/driver_cfa_cpp-PolyCost.obj' libtool=no @AMDEPBACKSLASH@1860 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1861 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PolyCost.obj `if test -f 'ResolvExpr/PolyCost.cc'; then $(CYGPATH_W) 'ResolvExpr/PolyCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PolyCost.cc'; fi`1754 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-PolyCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo -c -o ResolvExpr/driver_cfa_cpp-PolyCost.obj `if test -f 'ResolvExpr/PolyCost.cc'; then $(CYGPATH_W) 'ResolvExpr/PolyCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PolyCost.cc'; fi` 1755 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-PolyCost.Po 1756 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/PolyCost.cc' object='ResolvExpr/driver_cfa_cpp-PolyCost.obj' libtool=no @AMDEPBACKSLASH@ 1757 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1758 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-PolyCost.obj `if test -f 'ResolvExpr/PolyCost.cc'; then $(CYGPATH_W) 'ResolvExpr/PolyCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PolyCost.cc'; fi` 1862 1759 1863 1760 ResolvExpr/driver_cfa_cpp-Occurs.o: ResolvExpr/Occurs.cc 1864 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Occurs.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo -c -o ResolvExpr/driver_cfa_cpp-Occurs.o `test -f 'ResolvExpr/Occurs.cc' || echo '$(srcdir)/'`ResolvExpr/Occurs.cc1865 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Po1866 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Occurs.cc' object='ResolvExpr/driver_cfa_cpp-Occurs.o' libtool=no @AMDEPBACKSLASH@1867 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1868 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Occurs.o `test -f 'ResolvExpr/Occurs.cc' || echo '$(srcdir)/'`ResolvExpr/Occurs.cc1761 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Occurs.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo -c -o ResolvExpr/driver_cfa_cpp-Occurs.o `test -f 'ResolvExpr/Occurs.cc' || echo '$(srcdir)/'`ResolvExpr/Occurs.cc 1762 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Po 1763 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Occurs.cc' object='ResolvExpr/driver_cfa_cpp-Occurs.o' libtool=no @AMDEPBACKSLASH@ 1764 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1765 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Occurs.o `test -f 'ResolvExpr/Occurs.cc' || echo '$(srcdir)/'`ResolvExpr/Occurs.cc 1869 1766 1870 1767 ResolvExpr/driver_cfa_cpp-Occurs.obj: ResolvExpr/Occurs.cc 1871 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Occurs.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo -c -o ResolvExpr/driver_cfa_cpp-Occurs.obj `if test -f 'ResolvExpr/Occurs.cc'; then $(CYGPATH_W) 'ResolvExpr/Occurs.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Occurs.cc'; fi`1872 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Po1873 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/Occurs.cc' object='ResolvExpr/driver_cfa_cpp-Occurs.obj' libtool=no @AMDEPBACKSLASH@1874 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1875 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Occurs.obj `if test -f 'ResolvExpr/Occurs.cc'; then $(CYGPATH_W) 'ResolvExpr/Occurs.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Occurs.cc'; fi`1768 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-Occurs.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo -c -o ResolvExpr/driver_cfa_cpp-Occurs.obj `if test -f 'ResolvExpr/Occurs.cc'; then $(CYGPATH_W) 'ResolvExpr/Occurs.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Occurs.cc'; fi` 1769 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-Occurs.Po 1770 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/Occurs.cc' object='ResolvExpr/driver_cfa_cpp-Occurs.obj' libtool=no @AMDEPBACKSLASH@ 1771 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1772 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-Occurs.obj `if test -f 'ResolvExpr/Occurs.cc'; then $(CYGPATH_W) 'ResolvExpr/Occurs.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Occurs.cc'; fi` 1876 1773 1877 1774 ResolvExpr/driver_cfa_cpp-TypeEnvironment.o: ResolvExpr/TypeEnvironment.cc 1878 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-TypeEnvironment.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.o `test -f 'ResolvExpr/TypeEnvironment.cc' || echo '$(srcdir)/'`ResolvExpr/TypeEnvironment.cc1879 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Po1880 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/TypeEnvironment.cc' object='ResolvExpr/driver_cfa_cpp-TypeEnvironment.o' libtool=no @AMDEPBACKSLASH@1881 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1882 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.o `test -f 'ResolvExpr/TypeEnvironment.cc' || echo '$(srcdir)/'`ResolvExpr/TypeEnvironment.cc1775 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-TypeEnvironment.o -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.o `test -f 'ResolvExpr/TypeEnvironment.cc' || echo '$(srcdir)/'`ResolvExpr/TypeEnvironment.cc 1776 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Po 1777 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/TypeEnvironment.cc' object='ResolvExpr/driver_cfa_cpp-TypeEnvironment.o' libtool=no @AMDEPBACKSLASH@ 1778 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1779 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.o `test -f 'ResolvExpr/TypeEnvironment.cc' || echo '$(srcdir)/'`ResolvExpr/TypeEnvironment.cc 1883 1780 1884 1781 ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj: ResolvExpr/TypeEnvironment.cc 1885 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj `if test -f 'ResolvExpr/TypeEnvironment.cc'; then $(CYGPATH_W) 'ResolvExpr/TypeEnvironment.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/TypeEnvironment.cc'; fi`1886 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Po1887 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ResolvExpr/TypeEnvironment.cc' object='ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj' libtool=no @AMDEPBACKSLASH@1888 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1889 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj `if test -f 'ResolvExpr/TypeEnvironment.cc'; then $(CYGPATH_W) 'ResolvExpr/TypeEnvironment.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/TypeEnvironment.cc'; fi`1782 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj `if test -f 'ResolvExpr/TypeEnvironment.cc'; then $(CYGPATH_W) 'ResolvExpr/TypeEnvironment.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/TypeEnvironment.cc'; fi` 1783 @am__fastdepCXX_TRUE@ $(am__mv) ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Tpo ResolvExpr/$(DEPDIR)/driver_cfa_cpp-TypeEnvironment.Po 1784 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResolvExpr/TypeEnvironment.cc' object='ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj' libtool=no @AMDEPBACKSLASH@ 1785 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1786 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/driver_cfa_cpp-TypeEnvironment.obj `if test -f 'ResolvExpr/TypeEnvironment.cc'; then $(CYGPATH_W) 'ResolvExpr/TypeEnvironment.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/TypeEnvironment.cc'; fi` 1890 1787 1891 1788 SymTab/driver_cfa_cpp-Indexer.o: SymTab/Indexer.cc 1892 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Indexer.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo -c -o SymTab/driver_cfa_cpp-Indexer.o `test -f 'SymTab/Indexer.cc' || echo '$(srcdir)/'`SymTab/Indexer.cc1893 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Po1894 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Indexer.cc' object='SymTab/driver_cfa_cpp-Indexer.o' libtool=no @AMDEPBACKSLASH@1895 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1896 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Indexer.o `test -f 'SymTab/Indexer.cc' || echo '$(srcdir)/'`SymTab/Indexer.cc1789 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Indexer.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo -c -o SymTab/driver_cfa_cpp-Indexer.o `test -f 'SymTab/Indexer.cc' || echo '$(srcdir)/'`SymTab/Indexer.cc 1790 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Po 1791 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Indexer.cc' object='SymTab/driver_cfa_cpp-Indexer.o' libtool=no @AMDEPBACKSLASH@ 1792 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1793 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Indexer.o `test -f 'SymTab/Indexer.cc' || echo '$(srcdir)/'`SymTab/Indexer.cc 1897 1794 1898 1795 SymTab/driver_cfa_cpp-Indexer.obj: SymTab/Indexer.cc 1899 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Indexer.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo -c -o SymTab/driver_cfa_cpp-Indexer.obj `if test -f 'SymTab/Indexer.cc'; then $(CYGPATH_W) 'SymTab/Indexer.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Indexer.cc'; fi`1900 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Po1901 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Indexer.cc' object='SymTab/driver_cfa_cpp-Indexer.obj' libtool=no @AMDEPBACKSLASH@1902 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1903 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Indexer.obj `if test -f 'SymTab/Indexer.cc'; then $(CYGPATH_W) 'SymTab/Indexer.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Indexer.cc'; fi`1796 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Indexer.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo -c -o SymTab/driver_cfa_cpp-Indexer.obj `if test -f 'SymTab/Indexer.cc'; then $(CYGPATH_W) 'SymTab/Indexer.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Indexer.cc'; fi` 1797 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Po 1798 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Indexer.cc' object='SymTab/driver_cfa_cpp-Indexer.obj' libtool=no @AMDEPBACKSLASH@ 1799 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1800 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Indexer.obj `if test -f 'SymTab/Indexer.cc'; then $(CYGPATH_W) 'SymTab/Indexer.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Indexer.cc'; fi` 1904 1801 1905 1802 SymTab/driver_cfa_cpp-Mangler.o: SymTab/Mangler.cc 1906 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Mangler.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo -c -o SymTab/driver_cfa_cpp-Mangler.o `test -f 'SymTab/Mangler.cc' || echo '$(srcdir)/'`SymTab/Mangler.cc1907 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Po1908 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Mangler.cc' object='SymTab/driver_cfa_cpp-Mangler.o' libtool=no @AMDEPBACKSLASH@1909 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1910 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Mangler.o `test -f 'SymTab/Mangler.cc' || echo '$(srcdir)/'`SymTab/Mangler.cc1803 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Mangler.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo -c -o SymTab/driver_cfa_cpp-Mangler.o `test -f 'SymTab/Mangler.cc' || echo '$(srcdir)/'`SymTab/Mangler.cc 1804 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Po 1805 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Mangler.cc' object='SymTab/driver_cfa_cpp-Mangler.o' libtool=no @AMDEPBACKSLASH@ 1806 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1807 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Mangler.o `test -f 'SymTab/Mangler.cc' || echo '$(srcdir)/'`SymTab/Mangler.cc 1911 1808 1912 1809 SymTab/driver_cfa_cpp-Mangler.obj: SymTab/Mangler.cc 1913 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Mangler.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo -c -o SymTab/driver_cfa_cpp-Mangler.obj `if test -f 'SymTab/Mangler.cc'; then $(CYGPATH_W) 'SymTab/Mangler.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Mangler.cc'; fi`1914 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Po1915 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Mangler.cc' object='SymTab/driver_cfa_cpp-Mangler.obj' libtool=no @AMDEPBACKSLASH@1916 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1917 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Mangler.obj `if test -f 'SymTab/Mangler.cc'; then $(CYGPATH_W) 'SymTab/Mangler.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Mangler.cc'; fi`1810 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Mangler.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo -c -o SymTab/driver_cfa_cpp-Mangler.obj `if test -f 'SymTab/Mangler.cc'; then $(CYGPATH_W) 'SymTab/Mangler.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Mangler.cc'; fi` 1811 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Po 1812 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Mangler.cc' object='SymTab/driver_cfa_cpp-Mangler.obj' libtool=no @AMDEPBACKSLASH@ 1813 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1814 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Mangler.obj `if test -f 'SymTab/Mangler.cc'; then $(CYGPATH_W) 'SymTab/Mangler.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Mangler.cc'; fi` 1918 1815 1919 1816 SymTab/driver_cfa_cpp-Validate.o: SymTab/Validate.cc 1920 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Validate.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo -c -o SymTab/driver_cfa_cpp-Validate.o `test -f 'SymTab/Validate.cc' || echo '$(srcdir)/'`SymTab/Validate.cc1921 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po1922 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Validate.cc' object='SymTab/driver_cfa_cpp-Validate.o' libtool=no @AMDEPBACKSLASH@1923 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1924 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Validate.o `test -f 'SymTab/Validate.cc' || echo '$(srcdir)/'`SymTab/Validate.cc1817 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Validate.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo -c -o SymTab/driver_cfa_cpp-Validate.o `test -f 'SymTab/Validate.cc' || echo '$(srcdir)/'`SymTab/Validate.cc 1818 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po 1819 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Validate.cc' object='SymTab/driver_cfa_cpp-Validate.o' libtool=no @AMDEPBACKSLASH@ 1820 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1821 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Validate.o `test -f 'SymTab/Validate.cc' || echo '$(srcdir)/'`SymTab/Validate.cc 1925 1822 1926 1823 SymTab/driver_cfa_cpp-Validate.obj: SymTab/Validate.cc 1927 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Validate.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo -c -o SymTab/driver_cfa_cpp-Validate.obj `if test -f 'SymTab/Validate.cc'; then $(CYGPATH_W) 'SymTab/Validate.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Validate.cc'; fi`1928 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po1929 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Validate.cc' object='SymTab/driver_cfa_cpp-Validate.obj' libtool=no @AMDEPBACKSLASH@1930 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1931 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Validate.obj `if test -f 'SymTab/Validate.cc'; then $(CYGPATH_W) 'SymTab/Validate.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Validate.cc'; fi`1824 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Validate.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo -c -o SymTab/driver_cfa_cpp-Validate.obj `if test -f 'SymTab/Validate.cc'; then $(CYGPATH_W) 'SymTab/Validate.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Validate.cc'; fi` 1825 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po 1826 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/Validate.cc' object='SymTab/driver_cfa_cpp-Validate.obj' libtool=no @AMDEPBACKSLASH@ 1827 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1828 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Validate.obj `if test -f 'SymTab/Validate.cc'; then $(CYGPATH_W) 'SymTab/Validate.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Validate.cc'; fi` 1932 1829 1933 1830 SymTab/driver_cfa_cpp-FixFunction.o: SymTab/FixFunction.cc 1934 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-FixFunction.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo -c -o SymTab/driver_cfa_cpp-FixFunction.o `test -f 'SymTab/FixFunction.cc' || echo '$(srcdir)/'`SymTab/FixFunction.cc1935 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Po1936 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/FixFunction.cc' object='SymTab/driver_cfa_cpp-FixFunction.o' libtool=no @AMDEPBACKSLASH@1937 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1938 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-FixFunction.o `test -f 'SymTab/FixFunction.cc' || echo '$(srcdir)/'`SymTab/FixFunction.cc1831 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-FixFunction.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo -c -o SymTab/driver_cfa_cpp-FixFunction.o `test -f 'SymTab/FixFunction.cc' || echo '$(srcdir)/'`SymTab/FixFunction.cc 1832 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Po 1833 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/FixFunction.cc' object='SymTab/driver_cfa_cpp-FixFunction.o' libtool=no @AMDEPBACKSLASH@ 1834 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1835 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-FixFunction.o `test -f 'SymTab/FixFunction.cc' || echo '$(srcdir)/'`SymTab/FixFunction.cc 1939 1836 1940 1837 SymTab/driver_cfa_cpp-FixFunction.obj: SymTab/FixFunction.cc 1941 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-FixFunction.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo -c -o SymTab/driver_cfa_cpp-FixFunction.obj `if test -f 'SymTab/FixFunction.cc'; then $(CYGPATH_W) 'SymTab/FixFunction.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/FixFunction.cc'; fi`1942 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Po1943 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/FixFunction.cc' object='SymTab/driver_cfa_cpp-FixFunction.obj' libtool=no @AMDEPBACKSLASH@1944 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1945 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-FixFunction.obj `if test -f 'SymTab/FixFunction.cc'; then $(CYGPATH_W) 'SymTab/FixFunction.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/FixFunction.cc'; fi`1838 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-FixFunction.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo -c -o SymTab/driver_cfa_cpp-FixFunction.obj `if test -f 'SymTab/FixFunction.cc'; then $(CYGPATH_W) 'SymTab/FixFunction.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/FixFunction.cc'; fi` 1839 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-FixFunction.Po 1840 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/FixFunction.cc' object='SymTab/driver_cfa_cpp-FixFunction.obj' libtool=no @AMDEPBACKSLASH@ 1841 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1842 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-FixFunction.obj `if test -f 'SymTab/FixFunction.cc'; then $(CYGPATH_W) 'SymTab/FixFunction.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/FixFunction.cc'; fi` 1946 1843 1947 1844 SymTab/driver_cfa_cpp-ImplementationType.o: SymTab/ImplementationType.cc 1948 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-ImplementationType.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo -c -o SymTab/driver_cfa_cpp-ImplementationType.o `test -f 'SymTab/ImplementationType.cc' || echo '$(srcdir)/'`SymTab/ImplementationType.cc1949 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Po1950 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/ImplementationType.cc' object='SymTab/driver_cfa_cpp-ImplementationType.o' libtool=no @AMDEPBACKSLASH@1951 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1952 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-ImplementationType.o `test -f 'SymTab/ImplementationType.cc' || echo '$(srcdir)/'`SymTab/ImplementationType.cc1845 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-ImplementationType.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo -c -o SymTab/driver_cfa_cpp-ImplementationType.o `test -f 'SymTab/ImplementationType.cc' || echo '$(srcdir)/'`SymTab/ImplementationType.cc 1846 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Po 1847 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/ImplementationType.cc' object='SymTab/driver_cfa_cpp-ImplementationType.o' libtool=no @AMDEPBACKSLASH@ 1848 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1849 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-ImplementationType.o `test -f 'SymTab/ImplementationType.cc' || echo '$(srcdir)/'`SymTab/ImplementationType.cc 1953 1850 1954 1851 SymTab/driver_cfa_cpp-ImplementationType.obj: SymTab/ImplementationType.cc 1955 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-ImplementationType.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo -c -o SymTab/driver_cfa_cpp-ImplementationType.obj `if test -f 'SymTab/ImplementationType.cc'; then $(CYGPATH_W) 'SymTab/ImplementationType.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/ImplementationType.cc'; fi`1956 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Po1957 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/ImplementationType.cc' object='SymTab/driver_cfa_cpp-ImplementationType.obj' libtool=no @AMDEPBACKSLASH@1958 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1959 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-ImplementationType.obj `if test -f 'SymTab/ImplementationType.cc'; then $(CYGPATH_W) 'SymTab/ImplementationType.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/ImplementationType.cc'; fi`1852 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-ImplementationType.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo -c -o SymTab/driver_cfa_cpp-ImplementationType.obj `if test -f 'SymTab/ImplementationType.cc'; then $(CYGPATH_W) 'SymTab/ImplementationType.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/ImplementationType.cc'; fi` 1853 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-ImplementationType.Po 1854 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/ImplementationType.cc' object='SymTab/driver_cfa_cpp-ImplementationType.obj' libtool=no @AMDEPBACKSLASH@ 1855 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1856 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-ImplementationType.obj `if test -f 'SymTab/ImplementationType.cc'; then $(CYGPATH_W) 'SymTab/ImplementationType.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/ImplementationType.cc'; fi` 1960 1857 1961 1858 SymTab/driver_cfa_cpp-TypeEquality.o: SymTab/TypeEquality.cc 1962 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-TypeEquality.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo -c -o SymTab/driver_cfa_cpp-TypeEquality.o `test -f 'SymTab/TypeEquality.cc' || echo '$(srcdir)/'`SymTab/TypeEquality.cc1963 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po1964 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/TypeEquality.cc' object='SymTab/driver_cfa_cpp-TypeEquality.o' libtool=no @AMDEPBACKSLASH@1965 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1966 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-TypeEquality.o `test -f 'SymTab/TypeEquality.cc' || echo '$(srcdir)/'`SymTab/TypeEquality.cc1859 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-TypeEquality.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo -c -o SymTab/driver_cfa_cpp-TypeEquality.o `test -f 'SymTab/TypeEquality.cc' || echo '$(srcdir)/'`SymTab/TypeEquality.cc 1860 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po 1861 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/TypeEquality.cc' object='SymTab/driver_cfa_cpp-TypeEquality.o' libtool=no @AMDEPBACKSLASH@ 1862 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1863 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-TypeEquality.o `test -f 'SymTab/TypeEquality.cc' || echo '$(srcdir)/'`SymTab/TypeEquality.cc 1967 1864 1968 1865 SymTab/driver_cfa_cpp-TypeEquality.obj: SymTab/TypeEquality.cc 1969 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-TypeEquality.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo -c -o SymTab/driver_cfa_cpp-TypeEquality.obj `if test -f 'SymTab/TypeEquality.cc'; then $(CYGPATH_W) 'SymTab/TypeEquality.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/TypeEquality.cc'; fi` 1970 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po 1971 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/TypeEquality.cc' object='SymTab/driver_cfa_cpp-TypeEquality.obj' libtool=no @AMDEPBACKSLASH@ 1972 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1973 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-TypeEquality.obj `if test -f 'SymTab/TypeEquality.cc'; then $(CYGPATH_W) 'SymTab/TypeEquality.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/TypeEquality.cc'; fi` 1974 1975 SymTab/driver_cfa_cpp-Autogen.o: SymTab/Autogen.cc 1976 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Autogen.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Tpo -c -o SymTab/driver_cfa_cpp-Autogen.o `test -f 'SymTab/Autogen.cc' || echo '$(srcdir)/'`SymTab/Autogen.cc 1977 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Po 1978 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Autogen.cc' object='SymTab/driver_cfa_cpp-Autogen.o' libtool=no @AMDEPBACKSLASH@ 1979 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1980 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Autogen.o `test -f 'SymTab/Autogen.cc' || echo '$(srcdir)/'`SymTab/Autogen.cc 1981 1982 SymTab/driver_cfa_cpp-Autogen.obj: SymTab/Autogen.cc 1983 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-Autogen.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Tpo -c -o SymTab/driver_cfa_cpp-Autogen.obj `if test -f 'SymTab/Autogen.cc'; then $(CYGPATH_W) 'SymTab/Autogen.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Autogen.cc'; fi` 1984 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-Autogen.Po 1985 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/Autogen.cc' object='SymTab/driver_cfa_cpp-Autogen.obj' libtool=no @AMDEPBACKSLASH@ 1986 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1987 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Autogen.obj `if test -f 'SymTab/Autogen.cc'; then $(CYGPATH_W) 'SymTab/Autogen.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Autogen.cc'; fi` 1866 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-TypeEquality.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo -c -o SymTab/driver_cfa_cpp-TypeEquality.obj `if test -f 'SymTab/TypeEquality.cc'; then $(CYGPATH_W) 'SymTab/TypeEquality.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/TypeEquality.cc'; fi` 1867 @am__fastdepCXX_TRUE@ $(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po 1868 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SymTab/TypeEquality.cc' object='SymTab/driver_cfa_cpp-TypeEquality.obj' libtool=no @AMDEPBACKSLASH@ 1869 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1870 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-TypeEquality.obj `if test -f 'SymTab/TypeEquality.cc'; then $(CYGPATH_W) 'SymTab/TypeEquality.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/TypeEquality.cc'; fi` 1988 1871 1989 1872 SynTree/driver_cfa_cpp-Type.o: SynTree/Type.cc 1990 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Type.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo -c -o SynTree/driver_cfa_cpp-Type.o `test -f 'SynTree/Type.cc' || echo '$(srcdir)/'`SynTree/Type.cc1991 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Po1992 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Type.cc' object='SynTree/driver_cfa_cpp-Type.o' libtool=no @AMDEPBACKSLASH@1993 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1994 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Type.o `test -f 'SynTree/Type.cc' || echo '$(srcdir)/'`SynTree/Type.cc1873 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Type.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo -c -o SynTree/driver_cfa_cpp-Type.o `test -f 'SynTree/Type.cc' || echo '$(srcdir)/'`SynTree/Type.cc 1874 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Po 1875 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Type.cc' object='SynTree/driver_cfa_cpp-Type.o' libtool=no @AMDEPBACKSLASH@ 1876 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1877 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Type.o `test -f 'SynTree/Type.cc' || echo '$(srcdir)/'`SynTree/Type.cc 1995 1878 1996 1879 SynTree/driver_cfa_cpp-Type.obj: SynTree/Type.cc 1997 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Type.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo -c -o SynTree/driver_cfa_cpp-Type.obj `if test -f 'SynTree/Type.cc'; then $(CYGPATH_W) 'SynTree/Type.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Type.cc'; fi`1998 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Po1999 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Type.cc' object='SynTree/driver_cfa_cpp-Type.obj' libtool=no @AMDEPBACKSLASH@2000 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2001 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Type.obj `if test -f 'SynTree/Type.cc'; then $(CYGPATH_W) 'SynTree/Type.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Type.cc'; fi`1880 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Type.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo -c -o SynTree/driver_cfa_cpp-Type.obj `if test -f 'SynTree/Type.cc'; then $(CYGPATH_W) 'SynTree/Type.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Type.cc'; fi` 1881 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Type.Po 1882 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Type.cc' object='SynTree/driver_cfa_cpp-Type.obj' libtool=no @AMDEPBACKSLASH@ 1883 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1884 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Type.obj `if test -f 'SynTree/Type.cc'; then $(CYGPATH_W) 'SynTree/Type.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Type.cc'; fi` 2002 1885 2003 1886 SynTree/driver_cfa_cpp-VoidType.o: SynTree/VoidType.cc 2004 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VoidType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo -c -o SynTree/driver_cfa_cpp-VoidType.o `test -f 'SynTree/VoidType.cc' || echo '$(srcdir)/'`SynTree/VoidType.cc2005 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Po2006 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/VoidType.cc' object='SynTree/driver_cfa_cpp-VoidType.o' libtool=no @AMDEPBACKSLASH@2007 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2008 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VoidType.o `test -f 'SynTree/VoidType.cc' || echo '$(srcdir)/'`SynTree/VoidType.cc1887 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VoidType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo -c -o SynTree/driver_cfa_cpp-VoidType.o `test -f 'SynTree/VoidType.cc' || echo '$(srcdir)/'`SynTree/VoidType.cc 1888 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Po 1889 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/VoidType.cc' object='SynTree/driver_cfa_cpp-VoidType.o' libtool=no @AMDEPBACKSLASH@ 1890 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1891 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VoidType.o `test -f 'SynTree/VoidType.cc' || echo '$(srcdir)/'`SynTree/VoidType.cc 2009 1892 2010 1893 SynTree/driver_cfa_cpp-VoidType.obj: SynTree/VoidType.cc 2011 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VoidType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo -c -o SynTree/driver_cfa_cpp-VoidType.obj `if test -f 'SynTree/VoidType.cc'; then $(CYGPATH_W) 'SynTree/VoidType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VoidType.cc'; fi`2012 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Po2013 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/VoidType.cc' object='SynTree/driver_cfa_cpp-VoidType.obj' libtool=no @AMDEPBACKSLASH@2014 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2015 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VoidType.obj `if test -f 'SynTree/VoidType.cc'; then $(CYGPATH_W) 'SynTree/VoidType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VoidType.cc'; fi`1894 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VoidType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo -c -o SynTree/driver_cfa_cpp-VoidType.obj `if test -f 'SynTree/VoidType.cc'; then $(CYGPATH_W) 'SynTree/VoidType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VoidType.cc'; fi` 1895 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Po 1896 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/VoidType.cc' object='SynTree/driver_cfa_cpp-VoidType.obj' libtool=no @AMDEPBACKSLASH@ 1897 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1898 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VoidType.obj `if test -f 'SynTree/VoidType.cc'; then $(CYGPATH_W) 'SynTree/VoidType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VoidType.cc'; fi` 2016 1899 2017 1900 SynTree/driver_cfa_cpp-BasicType.o: SynTree/BasicType.cc 2018 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-BasicType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo -c -o SynTree/driver_cfa_cpp-BasicType.o `test -f 'SynTree/BasicType.cc' || echo '$(srcdir)/'`SynTree/BasicType.cc2019 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Po2020 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/BasicType.cc' object='SynTree/driver_cfa_cpp-BasicType.o' libtool=no @AMDEPBACKSLASH@2021 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2022 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-BasicType.o `test -f 'SynTree/BasicType.cc' || echo '$(srcdir)/'`SynTree/BasicType.cc1901 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-BasicType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo -c -o SynTree/driver_cfa_cpp-BasicType.o `test -f 'SynTree/BasicType.cc' || echo '$(srcdir)/'`SynTree/BasicType.cc 1902 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Po 1903 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/BasicType.cc' object='SynTree/driver_cfa_cpp-BasicType.o' libtool=no @AMDEPBACKSLASH@ 1904 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1905 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-BasicType.o `test -f 'SynTree/BasicType.cc' || echo '$(srcdir)/'`SynTree/BasicType.cc 2023 1906 2024 1907 SynTree/driver_cfa_cpp-BasicType.obj: SynTree/BasicType.cc 2025 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-BasicType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo -c -o SynTree/driver_cfa_cpp-BasicType.obj `if test -f 'SynTree/BasicType.cc'; then $(CYGPATH_W) 'SynTree/BasicType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/BasicType.cc'; fi`2026 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Po2027 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/BasicType.cc' object='SynTree/driver_cfa_cpp-BasicType.obj' libtool=no @AMDEPBACKSLASH@2028 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2029 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-BasicType.obj `if test -f 'SynTree/BasicType.cc'; then $(CYGPATH_W) 'SynTree/BasicType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/BasicType.cc'; fi`1908 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-BasicType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo -c -o SynTree/driver_cfa_cpp-BasicType.obj `if test -f 'SynTree/BasicType.cc'; then $(CYGPATH_W) 'SynTree/BasicType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/BasicType.cc'; fi` 1909 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-BasicType.Po 1910 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/BasicType.cc' object='SynTree/driver_cfa_cpp-BasicType.obj' libtool=no @AMDEPBACKSLASH@ 1911 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1912 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-BasicType.obj `if test -f 'SynTree/BasicType.cc'; then $(CYGPATH_W) 'SynTree/BasicType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/BasicType.cc'; fi` 2030 1913 2031 1914 SynTree/driver_cfa_cpp-PointerType.o: SynTree/PointerType.cc 2032 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-PointerType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo -c -o SynTree/driver_cfa_cpp-PointerType.o `test -f 'SynTree/PointerType.cc' || echo '$(srcdir)/'`SynTree/PointerType.cc2033 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Po2034 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/PointerType.cc' object='SynTree/driver_cfa_cpp-PointerType.o' libtool=no @AMDEPBACKSLASH@2035 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2036 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-PointerType.o `test -f 'SynTree/PointerType.cc' || echo '$(srcdir)/'`SynTree/PointerType.cc1915 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-PointerType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo -c -o SynTree/driver_cfa_cpp-PointerType.o `test -f 'SynTree/PointerType.cc' || echo '$(srcdir)/'`SynTree/PointerType.cc 1916 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Po 1917 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/PointerType.cc' object='SynTree/driver_cfa_cpp-PointerType.o' libtool=no @AMDEPBACKSLASH@ 1918 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1919 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-PointerType.o `test -f 'SynTree/PointerType.cc' || echo '$(srcdir)/'`SynTree/PointerType.cc 2037 1920 2038 1921 SynTree/driver_cfa_cpp-PointerType.obj: SynTree/PointerType.cc 2039 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-PointerType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo -c -o SynTree/driver_cfa_cpp-PointerType.obj `if test -f 'SynTree/PointerType.cc'; then $(CYGPATH_W) 'SynTree/PointerType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/PointerType.cc'; fi`2040 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Po2041 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/PointerType.cc' object='SynTree/driver_cfa_cpp-PointerType.obj' libtool=no @AMDEPBACKSLASH@2042 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2043 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-PointerType.obj `if test -f 'SynTree/PointerType.cc'; then $(CYGPATH_W) 'SynTree/PointerType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/PointerType.cc'; fi`1922 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-PointerType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo -c -o SynTree/driver_cfa_cpp-PointerType.obj `if test -f 'SynTree/PointerType.cc'; then $(CYGPATH_W) 'SynTree/PointerType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/PointerType.cc'; fi` 1923 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-PointerType.Po 1924 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/PointerType.cc' object='SynTree/driver_cfa_cpp-PointerType.obj' libtool=no @AMDEPBACKSLASH@ 1925 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1926 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-PointerType.obj `if test -f 'SynTree/PointerType.cc'; then $(CYGPATH_W) 'SynTree/PointerType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/PointerType.cc'; fi` 2044 1927 2045 1928 SynTree/driver_cfa_cpp-ArrayType.o: SynTree/ArrayType.cc 2046 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ArrayType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo -c -o SynTree/driver_cfa_cpp-ArrayType.o `test -f 'SynTree/ArrayType.cc' || echo '$(srcdir)/'`SynTree/ArrayType.cc2047 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Po2048 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ArrayType.cc' object='SynTree/driver_cfa_cpp-ArrayType.o' libtool=no @AMDEPBACKSLASH@2049 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2050 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ArrayType.o `test -f 'SynTree/ArrayType.cc' || echo '$(srcdir)/'`SynTree/ArrayType.cc1929 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ArrayType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo -c -o SynTree/driver_cfa_cpp-ArrayType.o `test -f 'SynTree/ArrayType.cc' || echo '$(srcdir)/'`SynTree/ArrayType.cc 1930 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Po 1931 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ArrayType.cc' object='SynTree/driver_cfa_cpp-ArrayType.o' libtool=no @AMDEPBACKSLASH@ 1932 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1933 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ArrayType.o `test -f 'SynTree/ArrayType.cc' || echo '$(srcdir)/'`SynTree/ArrayType.cc 2051 1934 2052 1935 SynTree/driver_cfa_cpp-ArrayType.obj: SynTree/ArrayType.cc 2053 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ArrayType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo -c -o SynTree/driver_cfa_cpp-ArrayType.obj `if test -f 'SynTree/ArrayType.cc'; then $(CYGPATH_W) 'SynTree/ArrayType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ArrayType.cc'; fi`2054 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Po2055 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ArrayType.cc' object='SynTree/driver_cfa_cpp-ArrayType.obj' libtool=no @AMDEPBACKSLASH@2056 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2057 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ArrayType.obj `if test -f 'SynTree/ArrayType.cc'; then $(CYGPATH_W) 'SynTree/ArrayType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ArrayType.cc'; fi`1936 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ArrayType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo -c -o SynTree/driver_cfa_cpp-ArrayType.obj `if test -f 'SynTree/ArrayType.cc'; then $(CYGPATH_W) 'SynTree/ArrayType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ArrayType.cc'; fi` 1937 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ArrayType.Po 1938 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ArrayType.cc' object='SynTree/driver_cfa_cpp-ArrayType.obj' libtool=no @AMDEPBACKSLASH@ 1939 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1940 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ArrayType.obj `if test -f 'SynTree/ArrayType.cc'; then $(CYGPATH_W) 'SynTree/ArrayType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ArrayType.cc'; fi` 2058 1941 2059 1942 SynTree/driver_cfa_cpp-FunctionType.o: SynTree/FunctionType.cc 2060 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo -c -o SynTree/driver_cfa_cpp-FunctionType.o `test -f 'SynTree/FunctionType.cc' || echo '$(srcdir)/'`SynTree/FunctionType.cc2061 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Po2062 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/FunctionType.cc' object='SynTree/driver_cfa_cpp-FunctionType.o' libtool=no @AMDEPBACKSLASH@2063 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2064 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionType.o `test -f 'SynTree/FunctionType.cc' || echo '$(srcdir)/'`SynTree/FunctionType.cc1943 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo -c -o SynTree/driver_cfa_cpp-FunctionType.o `test -f 'SynTree/FunctionType.cc' || echo '$(srcdir)/'`SynTree/FunctionType.cc 1944 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Po 1945 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/FunctionType.cc' object='SynTree/driver_cfa_cpp-FunctionType.o' libtool=no @AMDEPBACKSLASH@ 1946 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1947 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionType.o `test -f 'SynTree/FunctionType.cc' || echo '$(srcdir)/'`SynTree/FunctionType.cc 2065 1948 2066 1949 SynTree/driver_cfa_cpp-FunctionType.obj: SynTree/FunctionType.cc 2067 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo -c -o SynTree/driver_cfa_cpp-FunctionType.obj `if test -f 'SynTree/FunctionType.cc'; then $(CYGPATH_W) 'SynTree/FunctionType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionType.cc'; fi`2068 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Po2069 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/FunctionType.cc' object='SynTree/driver_cfa_cpp-FunctionType.obj' libtool=no @AMDEPBACKSLASH@2070 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2071 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionType.obj `if test -f 'SynTree/FunctionType.cc'; then $(CYGPATH_W) 'SynTree/FunctionType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionType.cc'; fi`1950 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo -c -o SynTree/driver_cfa_cpp-FunctionType.obj `if test -f 'SynTree/FunctionType.cc'; then $(CYGPATH_W) 'SynTree/FunctionType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionType.cc'; fi` 1951 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionType.Po 1952 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/FunctionType.cc' object='SynTree/driver_cfa_cpp-FunctionType.obj' libtool=no @AMDEPBACKSLASH@ 1953 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1954 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionType.obj `if test -f 'SynTree/FunctionType.cc'; then $(CYGPATH_W) 'SynTree/FunctionType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionType.cc'; fi` 2072 1955 2073 1956 SynTree/driver_cfa_cpp-ReferenceToType.o: SynTree/ReferenceToType.cc 2074 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ReferenceToType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo -c -o SynTree/driver_cfa_cpp-ReferenceToType.o `test -f 'SynTree/ReferenceToType.cc' || echo '$(srcdir)/'`SynTree/ReferenceToType.cc2075 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Po2076 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ReferenceToType.cc' object='SynTree/driver_cfa_cpp-ReferenceToType.o' libtool=no @AMDEPBACKSLASH@2077 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2078 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ReferenceToType.o `test -f 'SynTree/ReferenceToType.cc' || echo '$(srcdir)/'`SynTree/ReferenceToType.cc1957 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ReferenceToType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo -c -o SynTree/driver_cfa_cpp-ReferenceToType.o `test -f 'SynTree/ReferenceToType.cc' || echo '$(srcdir)/'`SynTree/ReferenceToType.cc 1958 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Po 1959 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ReferenceToType.cc' object='SynTree/driver_cfa_cpp-ReferenceToType.o' libtool=no @AMDEPBACKSLASH@ 1960 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1961 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ReferenceToType.o `test -f 'SynTree/ReferenceToType.cc' || echo '$(srcdir)/'`SynTree/ReferenceToType.cc 2079 1962 2080 1963 SynTree/driver_cfa_cpp-ReferenceToType.obj: SynTree/ReferenceToType.cc 2081 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ReferenceToType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo -c -o SynTree/driver_cfa_cpp-ReferenceToType.obj `if test -f 'SynTree/ReferenceToType.cc'; then $(CYGPATH_W) 'SynTree/ReferenceToType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ReferenceToType.cc'; fi`2082 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Po2083 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ReferenceToType.cc' object='SynTree/driver_cfa_cpp-ReferenceToType.obj' libtool=no @AMDEPBACKSLASH@2084 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2085 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ReferenceToType.obj `if test -f 'SynTree/ReferenceToType.cc'; then $(CYGPATH_W) 'SynTree/ReferenceToType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ReferenceToType.cc'; fi`1964 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ReferenceToType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo -c -o SynTree/driver_cfa_cpp-ReferenceToType.obj `if test -f 'SynTree/ReferenceToType.cc'; then $(CYGPATH_W) 'SynTree/ReferenceToType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ReferenceToType.cc'; fi` 1965 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ReferenceToType.Po 1966 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ReferenceToType.cc' object='SynTree/driver_cfa_cpp-ReferenceToType.obj' libtool=no @AMDEPBACKSLASH@ 1967 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1968 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ReferenceToType.obj `if test -f 'SynTree/ReferenceToType.cc'; then $(CYGPATH_W) 'SynTree/ReferenceToType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ReferenceToType.cc'; fi` 2086 1969 2087 1970 SynTree/driver_cfa_cpp-TupleType.o: SynTree/TupleType.cc 2088 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo -c -o SynTree/driver_cfa_cpp-TupleType.o `test -f 'SynTree/TupleType.cc' || echo '$(srcdir)/'`SynTree/TupleType.cc2089 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Po2090 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TupleType.cc' object='SynTree/driver_cfa_cpp-TupleType.o' libtool=no @AMDEPBACKSLASH@2091 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2092 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleType.o `test -f 'SynTree/TupleType.cc' || echo '$(srcdir)/'`SynTree/TupleType.cc1971 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo -c -o SynTree/driver_cfa_cpp-TupleType.o `test -f 'SynTree/TupleType.cc' || echo '$(srcdir)/'`SynTree/TupleType.cc 1972 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Po 1973 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TupleType.cc' object='SynTree/driver_cfa_cpp-TupleType.o' libtool=no @AMDEPBACKSLASH@ 1974 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1975 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleType.o `test -f 'SynTree/TupleType.cc' || echo '$(srcdir)/'`SynTree/TupleType.cc 2093 1976 2094 1977 SynTree/driver_cfa_cpp-TupleType.obj: SynTree/TupleType.cc 2095 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo -c -o SynTree/driver_cfa_cpp-TupleType.obj `if test -f 'SynTree/TupleType.cc'; then $(CYGPATH_W) 'SynTree/TupleType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleType.cc'; fi`2096 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Po2097 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TupleType.cc' object='SynTree/driver_cfa_cpp-TupleType.obj' libtool=no @AMDEPBACKSLASH@2098 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2099 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleType.obj `if test -f 'SynTree/TupleType.cc'; then $(CYGPATH_W) 'SynTree/TupleType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleType.cc'; fi`1978 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo -c -o SynTree/driver_cfa_cpp-TupleType.obj `if test -f 'SynTree/TupleType.cc'; then $(CYGPATH_W) 'SynTree/TupleType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleType.cc'; fi` 1979 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleType.Po 1980 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TupleType.cc' object='SynTree/driver_cfa_cpp-TupleType.obj' libtool=no @AMDEPBACKSLASH@ 1981 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1982 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleType.obj `if test -f 'SynTree/TupleType.cc'; then $(CYGPATH_W) 'SynTree/TupleType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleType.cc'; fi` 2100 1983 2101 1984 SynTree/driver_cfa_cpp-TypeofType.o: SynTree/TypeofType.cc 2102 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeofType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo -c -o SynTree/driver_cfa_cpp-TypeofType.o `test -f 'SynTree/TypeofType.cc' || echo '$(srcdir)/'`SynTree/TypeofType.cc2103 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Po2104 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeofType.cc' object='SynTree/driver_cfa_cpp-TypeofType.o' libtool=no @AMDEPBACKSLASH@2105 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2106 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeofType.o `test -f 'SynTree/TypeofType.cc' || echo '$(srcdir)/'`SynTree/TypeofType.cc1985 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeofType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo -c -o SynTree/driver_cfa_cpp-TypeofType.o `test -f 'SynTree/TypeofType.cc' || echo '$(srcdir)/'`SynTree/TypeofType.cc 1986 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Po 1987 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeofType.cc' object='SynTree/driver_cfa_cpp-TypeofType.o' libtool=no @AMDEPBACKSLASH@ 1988 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1989 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeofType.o `test -f 'SynTree/TypeofType.cc' || echo '$(srcdir)/'`SynTree/TypeofType.cc 2107 1990 2108 1991 SynTree/driver_cfa_cpp-TypeofType.obj: SynTree/TypeofType.cc 2109 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeofType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo -c -o SynTree/driver_cfa_cpp-TypeofType.obj `if test -f 'SynTree/TypeofType.cc'; then $(CYGPATH_W) 'SynTree/TypeofType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeofType.cc'; fi`2110 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Po2111 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeofType.cc' object='SynTree/driver_cfa_cpp-TypeofType.obj' libtool=no @AMDEPBACKSLASH@2112 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2113 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeofType.obj `if test -f 'SynTree/TypeofType.cc'; then $(CYGPATH_W) 'SynTree/TypeofType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeofType.cc'; fi`1992 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeofType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo -c -o SynTree/driver_cfa_cpp-TypeofType.obj `if test -f 'SynTree/TypeofType.cc'; then $(CYGPATH_W) 'SynTree/TypeofType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeofType.cc'; fi` 1993 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeofType.Po 1994 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeofType.cc' object='SynTree/driver_cfa_cpp-TypeofType.obj' libtool=no @AMDEPBACKSLASH@ 1995 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1996 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeofType.obj `if test -f 'SynTree/TypeofType.cc'; then $(CYGPATH_W) 'SynTree/TypeofType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeofType.cc'; fi` 2114 1997 2115 1998 SynTree/driver_cfa_cpp-AttrType.o: SynTree/AttrType.cc 2116 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AttrType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo -c -o SynTree/driver_cfa_cpp-AttrType.o `test -f 'SynTree/AttrType.cc' || echo '$(srcdir)/'`SynTree/AttrType.cc2117 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Po2118 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AttrType.cc' object='SynTree/driver_cfa_cpp-AttrType.o' libtool=no @AMDEPBACKSLASH@2119 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2120 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AttrType.o `test -f 'SynTree/AttrType.cc' || echo '$(srcdir)/'`SynTree/AttrType.cc1999 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AttrType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo -c -o SynTree/driver_cfa_cpp-AttrType.o `test -f 'SynTree/AttrType.cc' || echo '$(srcdir)/'`SynTree/AttrType.cc 2000 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Po 2001 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AttrType.cc' object='SynTree/driver_cfa_cpp-AttrType.o' libtool=no @AMDEPBACKSLASH@ 2002 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2003 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AttrType.o `test -f 'SynTree/AttrType.cc' || echo '$(srcdir)/'`SynTree/AttrType.cc 2121 2004 2122 2005 SynTree/driver_cfa_cpp-AttrType.obj: SynTree/AttrType.cc 2123 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AttrType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo -c -o SynTree/driver_cfa_cpp-AttrType.obj `if test -f 'SynTree/AttrType.cc'; then $(CYGPATH_W) 'SynTree/AttrType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AttrType.cc'; fi`2124 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Po2125 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AttrType.cc' object='SynTree/driver_cfa_cpp-AttrType.obj' libtool=no @AMDEPBACKSLASH@2126 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2127 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AttrType.obj `if test -f 'SynTree/AttrType.cc'; then $(CYGPATH_W) 'SynTree/AttrType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AttrType.cc'; fi`2006 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AttrType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo -c -o SynTree/driver_cfa_cpp-AttrType.obj `if test -f 'SynTree/AttrType.cc'; then $(CYGPATH_W) 'SynTree/AttrType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AttrType.cc'; fi` 2007 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AttrType.Po 2008 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AttrType.cc' object='SynTree/driver_cfa_cpp-AttrType.obj' libtool=no @AMDEPBACKSLASH@ 2009 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2010 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AttrType.obj `if test -f 'SynTree/AttrType.cc'; then $(CYGPATH_W) 'SynTree/AttrType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AttrType.cc'; fi` 2128 2011 2129 2012 SynTree/driver_cfa_cpp-VarArgsType.o: SynTree/VarArgsType.cc 2130 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VarArgsType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo -c -o SynTree/driver_cfa_cpp-VarArgsType.o `test -f 'SynTree/VarArgsType.cc' || echo '$(srcdir)/'`SynTree/VarArgsType.cc2131 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Po2132 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/VarArgsType.cc' object='SynTree/driver_cfa_cpp-VarArgsType.o' libtool=no @AMDEPBACKSLASH@2133 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2134 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VarArgsType.o `test -f 'SynTree/VarArgsType.cc' || echo '$(srcdir)/'`SynTree/VarArgsType.cc2013 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VarArgsType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo -c -o SynTree/driver_cfa_cpp-VarArgsType.o `test -f 'SynTree/VarArgsType.cc' || echo '$(srcdir)/'`SynTree/VarArgsType.cc 2014 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Po 2015 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/VarArgsType.cc' object='SynTree/driver_cfa_cpp-VarArgsType.o' libtool=no @AMDEPBACKSLASH@ 2016 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2017 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VarArgsType.o `test -f 'SynTree/VarArgsType.cc' || echo '$(srcdir)/'`SynTree/VarArgsType.cc 2135 2018 2136 2019 SynTree/driver_cfa_cpp-VarArgsType.obj: SynTree/VarArgsType.cc 2137 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VarArgsType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo -c -o SynTree/driver_cfa_cpp-VarArgsType.obj `if test -f 'SynTree/VarArgsType.cc'; then $(CYGPATH_W) 'SynTree/VarArgsType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VarArgsType.cc'; fi`2138 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Po2139 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/VarArgsType.cc' object='SynTree/driver_cfa_cpp-VarArgsType.obj' libtool=no @AMDEPBACKSLASH@2140 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2141 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VarArgsType.obj `if test -f 'SynTree/VarArgsType.cc'; then $(CYGPATH_W) 'SynTree/VarArgsType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VarArgsType.cc'; fi`2020 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-VarArgsType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo -c -o SynTree/driver_cfa_cpp-VarArgsType.obj `if test -f 'SynTree/VarArgsType.cc'; then $(CYGPATH_W) 'SynTree/VarArgsType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VarArgsType.cc'; fi` 2021 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-VarArgsType.Po 2022 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/VarArgsType.cc' object='SynTree/driver_cfa_cpp-VarArgsType.obj' libtool=no @AMDEPBACKSLASH@ 2023 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2024 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-VarArgsType.obj `if test -f 'SynTree/VarArgsType.cc'; then $(CYGPATH_W) 'SynTree/VarArgsType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VarArgsType.cc'; fi` 2142 2025 2143 2026 SynTree/driver_cfa_cpp-Constant.o: SynTree/Constant.cc 2144 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Constant.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo -c -o SynTree/driver_cfa_cpp-Constant.o `test -f 'SynTree/Constant.cc' || echo '$(srcdir)/'`SynTree/Constant.cc2145 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Po2146 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Constant.cc' object='SynTree/driver_cfa_cpp-Constant.o' libtool=no @AMDEPBACKSLASH@2147 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2148 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Constant.o `test -f 'SynTree/Constant.cc' || echo '$(srcdir)/'`SynTree/Constant.cc2027 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Constant.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo -c -o SynTree/driver_cfa_cpp-Constant.o `test -f 'SynTree/Constant.cc' || echo '$(srcdir)/'`SynTree/Constant.cc 2028 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Po 2029 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Constant.cc' object='SynTree/driver_cfa_cpp-Constant.o' libtool=no @AMDEPBACKSLASH@ 2030 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2031 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Constant.o `test -f 'SynTree/Constant.cc' || echo '$(srcdir)/'`SynTree/Constant.cc 2149 2032 2150 2033 SynTree/driver_cfa_cpp-Constant.obj: SynTree/Constant.cc 2151 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Constant.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo -c -o SynTree/driver_cfa_cpp-Constant.obj `if test -f 'SynTree/Constant.cc'; then $(CYGPATH_W) 'SynTree/Constant.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Constant.cc'; fi`2152 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Po2153 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Constant.cc' object='SynTree/driver_cfa_cpp-Constant.obj' libtool=no @AMDEPBACKSLASH@2154 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2155 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Constant.obj `if test -f 'SynTree/Constant.cc'; then $(CYGPATH_W) 'SynTree/Constant.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Constant.cc'; fi`2034 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Constant.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo -c -o SynTree/driver_cfa_cpp-Constant.obj `if test -f 'SynTree/Constant.cc'; then $(CYGPATH_W) 'SynTree/Constant.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Constant.cc'; fi` 2035 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Constant.Po 2036 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Constant.cc' object='SynTree/driver_cfa_cpp-Constant.obj' libtool=no @AMDEPBACKSLASH@ 2037 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2038 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Constant.obj `if test -f 'SynTree/Constant.cc'; then $(CYGPATH_W) 'SynTree/Constant.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Constant.cc'; fi` 2156 2039 2157 2040 SynTree/driver_cfa_cpp-Expression.o: SynTree/Expression.cc 2158 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Expression.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo -c -o SynTree/driver_cfa_cpp-Expression.o `test -f 'SynTree/Expression.cc' || echo '$(srcdir)/'`SynTree/Expression.cc2159 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Po2160 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Expression.cc' object='SynTree/driver_cfa_cpp-Expression.o' libtool=no @AMDEPBACKSLASH@2161 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2162 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Expression.o `test -f 'SynTree/Expression.cc' || echo '$(srcdir)/'`SynTree/Expression.cc2041 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Expression.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo -c -o SynTree/driver_cfa_cpp-Expression.o `test -f 'SynTree/Expression.cc' || echo '$(srcdir)/'`SynTree/Expression.cc 2042 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Po 2043 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Expression.cc' object='SynTree/driver_cfa_cpp-Expression.o' libtool=no @AMDEPBACKSLASH@ 2044 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2045 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Expression.o `test -f 'SynTree/Expression.cc' || echo '$(srcdir)/'`SynTree/Expression.cc 2163 2046 2164 2047 SynTree/driver_cfa_cpp-Expression.obj: SynTree/Expression.cc 2165 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Expression.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo -c -o SynTree/driver_cfa_cpp-Expression.obj `if test -f 'SynTree/Expression.cc'; then $(CYGPATH_W) 'SynTree/Expression.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Expression.cc'; fi`2166 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Po2167 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Expression.cc' object='SynTree/driver_cfa_cpp-Expression.obj' libtool=no @AMDEPBACKSLASH@2168 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2169 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Expression.obj `if test -f 'SynTree/Expression.cc'; then $(CYGPATH_W) 'SynTree/Expression.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Expression.cc'; fi`2048 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Expression.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo -c -o SynTree/driver_cfa_cpp-Expression.obj `if test -f 'SynTree/Expression.cc'; then $(CYGPATH_W) 'SynTree/Expression.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Expression.cc'; fi` 2049 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Expression.Po 2050 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Expression.cc' object='SynTree/driver_cfa_cpp-Expression.obj' libtool=no @AMDEPBACKSLASH@ 2051 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2052 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Expression.obj `if test -f 'SynTree/Expression.cc'; then $(CYGPATH_W) 'SynTree/Expression.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Expression.cc'; fi` 2170 2053 2171 2054 SynTree/driver_cfa_cpp-TupleExpr.o: SynTree/TupleExpr.cc 2172 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo -c -o SynTree/driver_cfa_cpp-TupleExpr.o `test -f 'SynTree/TupleExpr.cc' || echo '$(srcdir)/'`SynTree/TupleExpr.cc2173 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Po2174 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TupleExpr.cc' object='SynTree/driver_cfa_cpp-TupleExpr.o' libtool=no @AMDEPBACKSLASH@2175 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2176 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleExpr.o `test -f 'SynTree/TupleExpr.cc' || echo '$(srcdir)/'`SynTree/TupleExpr.cc2055 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo -c -o SynTree/driver_cfa_cpp-TupleExpr.o `test -f 'SynTree/TupleExpr.cc' || echo '$(srcdir)/'`SynTree/TupleExpr.cc 2056 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Po 2057 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TupleExpr.cc' object='SynTree/driver_cfa_cpp-TupleExpr.o' libtool=no @AMDEPBACKSLASH@ 2058 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2059 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleExpr.o `test -f 'SynTree/TupleExpr.cc' || echo '$(srcdir)/'`SynTree/TupleExpr.cc 2177 2060 2178 2061 SynTree/driver_cfa_cpp-TupleExpr.obj: SynTree/TupleExpr.cc 2179 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo -c -o SynTree/driver_cfa_cpp-TupleExpr.obj `if test -f 'SynTree/TupleExpr.cc'; then $(CYGPATH_W) 'SynTree/TupleExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleExpr.cc'; fi`2180 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Po2181 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TupleExpr.cc' object='SynTree/driver_cfa_cpp-TupleExpr.obj' libtool=no @AMDEPBACKSLASH@2182 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2183 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleExpr.obj `if test -f 'SynTree/TupleExpr.cc'; then $(CYGPATH_W) 'SynTree/TupleExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleExpr.cc'; fi`2062 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TupleExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo -c -o SynTree/driver_cfa_cpp-TupleExpr.obj `if test -f 'SynTree/TupleExpr.cc'; then $(CYGPATH_W) 'SynTree/TupleExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleExpr.cc'; fi` 2063 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TupleExpr.Po 2064 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TupleExpr.cc' object='SynTree/driver_cfa_cpp-TupleExpr.obj' libtool=no @AMDEPBACKSLASH@ 2065 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2066 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TupleExpr.obj `if test -f 'SynTree/TupleExpr.cc'; then $(CYGPATH_W) 'SynTree/TupleExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleExpr.cc'; fi` 2184 2067 2185 2068 SynTree/driver_cfa_cpp-CommaExpr.o: SynTree/CommaExpr.cc 2186 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CommaExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo -c -o SynTree/driver_cfa_cpp-CommaExpr.o `test -f 'SynTree/CommaExpr.cc' || echo '$(srcdir)/'`SynTree/CommaExpr.cc2187 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Po2188 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/CommaExpr.cc' object='SynTree/driver_cfa_cpp-CommaExpr.o' libtool=no @AMDEPBACKSLASH@2189 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2190 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CommaExpr.o `test -f 'SynTree/CommaExpr.cc' || echo '$(srcdir)/'`SynTree/CommaExpr.cc2069 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CommaExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo -c -o SynTree/driver_cfa_cpp-CommaExpr.o `test -f 'SynTree/CommaExpr.cc' || echo '$(srcdir)/'`SynTree/CommaExpr.cc 2070 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Po 2071 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/CommaExpr.cc' object='SynTree/driver_cfa_cpp-CommaExpr.o' libtool=no @AMDEPBACKSLASH@ 2072 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2073 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CommaExpr.o `test -f 'SynTree/CommaExpr.cc' || echo '$(srcdir)/'`SynTree/CommaExpr.cc 2191 2074 2192 2075 SynTree/driver_cfa_cpp-CommaExpr.obj: SynTree/CommaExpr.cc 2193 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CommaExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo -c -o SynTree/driver_cfa_cpp-CommaExpr.obj `if test -f 'SynTree/CommaExpr.cc'; then $(CYGPATH_W) 'SynTree/CommaExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CommaExpr.cc'; fi`2194 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Po2195 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/CommaExpr.cc' object='SynTree/driver_cfa_cpp-CommaExpr.obj' libtool=no @AMDEPBACKSLASH@2196 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2197 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CommaExpr.obj `if test -f 'SynTree/CommaExpr.cc'; then $(CYGPATH_W) 'SynTree/CommaExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CommaExpr.cc'; fi`2076 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CommaExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo -c -o SynTree/driver_cfa_cpp-CommaExpr.obj `if test -f 'SynTree/CommaExpr.cc'; then $(CYGPATH_W) 'SynTree/CommaExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CommaExpr.cc'; fi` 2077 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CommaExpr.Po 2078 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/CommaExpr.cc' object='SynTree/driver_cfa_cpp-CommaExpr.obj' libtool=no @AMDEPBACKSLASH@ 2079 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2080 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CommaExpr.obj `if test -f 'SynTree/CommaExpr.cc'; then $(CYGPATH_W) 'SynTree/CommaExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CommaExpr.cc'; fi` 2198 2081 2199 2082 SynTree/driver_cfa_cpp-TypeExpr.o: SynTree/TypeExpr.cc 2200 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo -c -o SynTree/driver_cfa_cpp-TypeExpr.o `test -f 'SynTree/TypeExpr.cc' || echo '$(srcdir)/'`SynTree/TypeExpr.cc2201 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Po2202 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeExpr.cc' object='SynTree/driver_cfa_cpp-TypeExpr.o' libtool=no @AMDEPBACKSLASH@2203 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2204 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeExpr.o `test -f 'SynTree/TypeExpr.cc' || echo '$(srcdir)/'`SynTree/TypeExpr.cc2083 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo -c -o SynTree/driver_cfa_cpp-TypeExpr.o `test -f 'SynTree/TypeExpr.cc' || echo '$(srcdir)/'`SynTree/TypeExpr.cc 2084 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Po 2085 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeExpr.cc' object='SynTree/driver_cfa_cpp-TypeExpr.o' libtool=no @AMDEPBACKSLASH@ 2086 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2087 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeExpr.o `test -f 'SynTree/TypeExpr.cc' || echo '$(srcdir)/'`SynTree/TypeExpr.cc 2205 2088 2206 2089 SynTree/driver_cfa_cpp-TypeExpr.obj: SynTree/TypeExpr.cc 2207 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo -c -o SynTree/driver_cfa_cpp-TypeExpr.obj `if test -f 'SynTree/TypeExpr.cc'; then $(CYGPATH_W) 'SynTree/TypeExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeExpr.cc'; fi`2208 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Po2209 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeExpr.cc' object='SynTree/driver_cfa_cpp-TypeExpr.obj' libtool=no @AMDEPBACKSLASH@2210 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2211 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeExpr.obj `if test -f 'SynTree/TypeExpr.cc'; then $(CYGPATH_W) 'SynTree/TypeExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeExpr.cc'; fi`2090 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo -c -o SynTree/driver_cfa_cpp-TypeExpr.obj `if test -f 'SynTree/TypeExpr.cc'; then $(CYGPATH_W) 'SynTree/TypeExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeExpr.cc'; fi` 2091 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeExpr.Po 2092 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeExpr.cc' object='SynTree/driver_cfa_cpp-TypeExpr.obj' libtool=no @AMDEPBACKSLASH@ 2093 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2094 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeExpr.obj `if test -f 'SynTree/TypeExpr.cc'; then $(CYGPATH_W) 'SynTree/TypeExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeExpr.cc'; fi` 2212 2095 2213 2096 SynTree/driver_cfa_cpp-ApplicationExpr.o: SynTree/ApplicationExpr.cc 2214 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ApplicationExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo -c -o SynTree/driver_cfa_cpp-ApplicationExpr.o `test -f 'SynTree/ApplicationExpr.cc' || echo '$(srcdir)/'`SynTree/ApplicationExpr.cc2215 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Po2216 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ApplicationExpr.cc' object='SynTree/driver_cfa_cpp-ApplicationExpr.o' libtool=no @AMDEPBACKSLASH@2217 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2218 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ApplicationExpr.o `test -f 'SynTree/ApplicationExpr.cc' || echo '$(srcdir)/'`SynTree/ApplicationExpr.cc2097 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ApplicationExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo -c -o SynTree/driver_cfa_cpp-ApplicationExpr.o `test -f 'SynTree/ApplicationExpr.cc' || echo '$(srcdir)/'`SynTree/ApplicationExpr.cc 2098 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Po 2099 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ApplicationExpr.cc' object='SynTree/driver_cfa_cpp-ApplicationExpr.o' libtool=no @AMDEPBACKSLASH@ 2100 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2101 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ApplicationExpr.o `test -f 'SynTree/ApplicationExpr.cc' || echo '$(srcdir)/'`SynTree/ApplicationExpr.cc 2219 2102 2220 2103 SynTree/driver_cfa_cpp-ApplicationExpr.obj: SynTree/ApplicationExpr.cc 2221 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ApplicationExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo -c -o SynTree/driver_cfa_cpp-ApplicationExpr.obj `if test -f 'SynTree/ApplicationExpr.cc'; then $(CYGPATH_W) 'SynTree/ApplicationExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ApplicationExpr.cc'; fi`2222 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Po2223 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ApplicationExpr.cc' object='SynTree/driver_cfa_cpp-ApplicationExpr.obj' libtool=no @AMDEPBACKSLASH@2224 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2225 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ApplicationExpr.obj `if test -f 'SynTree/ApplicationExpr.cc'; then $(CYGPATH_W) 'SynTree/ApplicationExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ApplicationExpr.cc'; fi`2104 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ApplicationExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo -c -o SynTree/driver_cfa_cpp-ApplicationExpr.obj `if test -f 'SynTree/ApplicationExpr.cc'; then $(CYGPATH_W) 'SynTree/ApplicationExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ApplicationExpr.cc'; fi` 2105 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ApplicationExpr.Po 2106 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ApplicationExpr.cc' object='SynTree/driver_cfa_cpp-ApplicationExpr.obj' libtool=no @AMDEPBACKSLASH@ 2107 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2108 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ApplicationExpr.obj `if test -f 'SynTree/ApplicationExpr.cc'; then $(CYGPATH_W) 'SynTree/ApplicationExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ApplicationExpr.cc'; fi` 2226 2109 2227 2110 SynTree/driver_cfa_cpp-AddressExpr.o: SynTree/AddressExpr.cc 2228 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddressExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo -c -o SynTree/driver_cfa_cpp-AddressExpr.o `test -f 'SynTree/AddressExpr.cc' || echo '$(srcdir)/'`SynTree/AddressExpr.cc2229 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Po2230 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AddressExpr.cc' object='SynTree/driver_cfa_cpp-AddressExpr.o' libtool=no @AMDEPBACKSLASH@2231 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2232 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddressExpr.o `test -f 'SynTree/AddressExpr.cc' || echo '$(srcdir)/'`SynTree/AddressExpr.cc2111 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddressExpr.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo -c -o SynTree/driver_cfa_cpp-AddressExpr.o `test -f 'SynTree/AddressExpr.cc' || echo '$(srcdir)/'`SynTree/AddressExpr.cc 2112 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Po 2113 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AddressExpr.cc' object='SynTree/driver_cfa_cpp-AddressExpr.o' libtool=no @AMDEPBACKSLASH@ 2114 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2115 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddressExpr.o `test -f 'SynTree/AddressExpr.cc' || echo '$(srcdir)/'`SynTree/AddressExpr.cc 2233 2116 2234 2117 SynTree/driver_cfa_cpp-AddressExpr.obj: SynTree/AddressExpr.cc 2235 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddressExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo -c -o SynTree/driver_cfa_cpp-AddressExpr.obj `if test -f 'SynTree/AddressExpr.cc'; then $(CYGPATH_W) 'SynTree/AddressExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddressExpr.cc'; fi`2236 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Po2237 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AddressExpr.cc' object='SynTree/driver_cfa_cpp-AddressExpr.obj' libtool=no @AMDEPBACKSLASH@2238 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2239 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddressExpr.obj `if test -f 'SynTree/AddressExpr.cc'; then $(CYGPATH_W) 'SynTree/AddressExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddressExpr.cc'; fi`2118 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddressExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo -c -o SynTree/driver_cfa_cpp-AddressExpr.obj `if test -f 'SynTree/AddressExpr.cc'; then $(CYGPATH_W) 'SynTree/AddressExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddressExpr.cc'; fi` 2119 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddressExpr.Po 2120 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AddressExpr.cc' object='SynTree/driver_cfa_cpp-AddressExpr.obj' libtool=no @AMDEPBACKSLASH@ 2121 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2122 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddressExpr.obj `if test -f 'SynTree/AddressExpr.cc'; then $(CYGPATH_W) 'SynTree/AddressExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddressExpr.cc'; fi` 2240 2123 2241 2124 SynTree/driver_cfa_cpp-Statement.o: SynTree/Statement.cc 2242 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Statement.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo -c -o SynTree/driver_cfa_cpp-Statement.o `test -f 'SynTree/Statement.cc' || echo '$(srcdir)/'`SynTree/Statement.cc2243 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Po2244 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Statement.cc' object='SynTree/driver_cfa_cpp-Statement.o' libtool=no @AMDEPBACKSLASH@2245 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2246 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Statement.o `test -f 'SynTree/Statement.cc' || echo '$(srcdir)/'`SynTree/Statement.cc2125 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Statement.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo -c -o SynTree/driver_cfa_cpp-Statement.o `test -f 'SynTree/Statement.cc' || echo '$(srcdir)/'`SynTree/Statement.cc 2126 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Po 2127 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Statement.cc' object='SynTree/driver_cfa_cpp-Statement.o' libtool=no @AMDEPBACKSLASH@ 2128 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2129 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Statement.o `test -f 'SynTree/Statement.cc' || echo '$(srcdir)/'`SynTree/Statement.cc 2247 2130 2248 2131 SynTree/driver_cfa_cpp-Statement.obj: SynTree/Statement.cc 2249 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Statement.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo -c -o SynTree/driver_cfa_cpp-Statement.obj `if test -f 'SynTree/Statement.cc'; then $(CYGPATH_W) 'SynTree/Statement.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Statement.cc'; fi`2250 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Po2251 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Statement.cc' object='SynTree/driver_cfa_cpp-Statement.obj' libtool=no @AMDEPBACKSLASH@2252 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2253 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Statement.obj `if test -f 'SynTree/Statement.cc'; then $(CYGPATH_W) 'SynTree/Statement.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Statement.cc'; fi`2132 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Statement.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo -c -o SynTree/driver_cfa_cpp-Statement.obj `if test -f 'SynTree/Statement.cc'; then $(CYGPATH_W) 'SynTree/Statement.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Statement.cc'; fi` 2133 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Statement.Po 2134 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Statement.cc' object='SynTree/driver_cfa_cpp-Statement.obj' libtool=no @AMDEPBACKSLASH@ 2135 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2136 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Statement.obj `if test -f 'SynTree/Statement.cc'; then $(CYGPATH_W) 'SynTree/Statement.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Statement.cc'; fi` 2254 2137 2255 2138 SynTree/driver_cfa_cpp-CompoundStmt.o: SynTree/CompoundStmt.cc 2256 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CompoundStmt.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo -c -o SynTree/driver_cfa_cpp-CompoundStmt.o `test -f 'SynTree/CompoundStmt.cc' || echo '$(srcdir)/'`SynTree/CompoundStmt.cc2257 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Po2258 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/CompoundStmt.cc' object='SynTree/driver_cfa_cpp-CompoundStmt.o' libtool=no @AMDEPBACKSLASH@2259 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2260 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CompoundStmt.o `test -f 'SynTree/CompoundStmt.cc' || echo '$(srcdir)/'`SynTree/CompoundStmt.cc2139 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CompoundStmt.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo -c -o SynTree/driver_cfa_cpp-CompoundStmt.o `test -f 'SynTree/CompoundStmt.cc' || echo '$(srcdir)/'`SynTree/CompoundStmt.cc 2140 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Po 2141 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/CompoundStmt.cc' object='SynTree/driver_cfa_cpp-CompoundStmt.o' libtool=no @AMDEPBACKSLASH@ 2142 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2143 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CompoundStmt.o `test -f 'SynTree/CompoundStmt.cc' || echo '$(srcdir)/'`SynTree/CompoundStmt.cc 2261 2144 2262 2145 SynTree/driver_cfa_cpp-CompoundStmt.obj: SynTree/CompoundStmt.cc 2263 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CompoundStmt.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo -c -o SynTree/driver_cfa_cpp-CompoundStmt.obj `if test -f 'SynTree/CompoundStmt.cc'; then $(CYGPATH_W) 'SynTree/CompoundStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CompoundStmt.cc'; fi`2264 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Po2265 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/CompoundStmt.cc' object='SynTree/driver_cfa_cpp-CompoundStmt.obj' libtool=no @AMDEPBACKSLASH@2266 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2267 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CompoundStmt.obj `if test -f 'SynTree/CompoundStmt.cc'; then $(CYGPATH_W) 'SynTree/CompoundStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CompoundStmt.cc'; fi`2146 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-CompoundStmt.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo -c -o SynTree/driver_cfa_cpp-CompoundStmt.obj `if test -f 'SynTree/CompoundStmt.cc'; then $(CYGPATH_W) 'SynTree/CompoundStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CompoundStmt.cc'; fi` 2147 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-CompoundStmt.Po 2148 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/CompoundStmt.cc' object='SynTree/driver_cfa_cpp-CompoundStmt.obj' libtool=no @AMDEPBACKSLASH@ 2149 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2150 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-CompoundStmt.obj `if test -f 'SynTree/CompoundStmt.cc'; then $(CYGPATH_W) 'SynTree/CompoundStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CompoundStmt.cc'; fi` 2268 2151 2269 2152 SynTree/driver_cfa_cpp-DeclStmt.o: SynTree/DeclStmt.cc 2270 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclStmt.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo -c -o SynTree/driver_cfa_cpp-DeclStmt.o `test -f 'SynTree/DeclStmt.cc' || echo '$(srcdir)/'`SynTree/DeclStmt.cc2271 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Po2272 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/DeclStmt.cc' object='SynTree/driver_cfa_cpp-DeclStmt.o' libtool=no @AMDEPBACKSLASH@2273 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2274 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclStmt.o `test -f 'SynTree/DeclStmt.cc' || echo '$(srcdir)/'`SynTree/DeclStmt.cc2153 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclStmt.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo -c -o SynTree/driver_cfa_cpp-DeclStmt.o `test -f 'SynTree/DeclStmt.cc' || echo '$(srcdir)/'`SynTree/DeclStmt.cc 2154 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Po 2155 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/DeclStmt.cc' object='SynTree/driver_cfa_cpp-DeclStmt.o' libtool=no @AMDEPBACKSLASH@ 2156 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2157 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclStmt.o `test -f 'SynTree/DeclStmt.cc' || echo '$(srcdir)/'`SynTree/DeclStmt.cc 2275 2158 2276 2159 SynTree/driver_cfa_cpp-DeclStmt.obj: SynTree/DeclStmt.cc 2277 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclStmt.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo -c -o SynTree/driver_cfa_cpp-DeclStmt.obj `if test -f 'SynTree/DeclStmt.cc'; then $(CYGPATH_W) 'SynTree/DeclStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclStmt.cc'; fi`2278 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Po2279 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/DeclStmt.cc' object='SynTree/driver_cfa_cpp-DeclStmt.obj' libtool=no @AMDEPBACKSLASH@2280 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2281 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclStmt.obj `if test -f 'SynTree/DeclStmt.cc'; then $(CYGPATH_W) 'SynTree/DeclStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclStmt.cc'; fi`2160 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclStmt.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo -c -o SynTree/driver_cfa_cpp-DeclStmt.obj `if test -f 'SynTree/DeclStmt.cc'; then $(CYGPATH_W) 'SynTree/DeclStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclStmt.cc'; fi` 2161 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclStmt.Po 2162 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/DeclStmt.cc' object='SynTree/driver_cfa_cpp-DeclStmt.obj' libtool=no @AMDEPBACKSLASH@ 2163 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2164 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclStmt.obj `if test -f 'SynTree/DeclStmt.cc'; then $(CYGPATH_W) 'SynTree/DeclStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclStmt.cc'; fi` 2282 2165 2283 2166 SynTree/driver_cfa_cpp-Declaration.o: SynTree/Declaration.cc 2284 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Declaration.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo -c -o SynTree/driver_cfa_cpp-Declaration.o `test -f 'SynTree/Declaration.cc' || echo '$(srcdir)/'`SynTree/Declaration.cc2285 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Po2286 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Declaration.cc' object='SynTree/driver_cfa_cpp-Declaration.o' libtool=no @AMDEPBACKSLASH@2287 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2288 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Declaration.o `test -f 'SynTree/Declaration.cc' || echo '$(srcdir)/'`SynTree/Declaration.cc2167 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Declaration.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo -c -o SynTree/driver_cfa_cpp-Declaration.o `test -f 'SynTree/Declaration.cc' || echo '$(srcdir)/'`SynTree/Declaration.cc 2168 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Po 2169 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Declaration.cc' object='SynTree/driver_cfa_cpp-Declaration.o' libtool=no @AMDEPBACKSLASH@ 2170 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2171 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Declaration.o `test -f 'SynTree/Declaration.cc' || echo '$(srcdir)/'`SynTree/Declaration.cc 2289 2172 2290 2173 SynTree/driver_cfa_cpp-Declaration.obj: SynTree/Declaration.cc 2291 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Declaration.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo -c -o SynTree/driver_cfa_cpp-Declaration.obj `if test -f 'SynTree/Declaration.cc'; then $(CYGPATH_W) 'SynTree/Declaration.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Declaration.cc'; fi`2292 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Po2293 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Declaration.cc' object='SynTree/driver_cfa_cpp-Declaration.obj' libtool=no @AMDEPBACKSLASH@2294 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2295 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Declaration.obj `if test -f 'SynTree/Declaration.cc'; then $(CYGPATH_W) 'SynTree/Declaration.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Declaration.cc'; fi`2174 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Declaration.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo -c -o SynTree/driver_cfa_cpp-Declaration.obj `if test -f 'SynTree/Declaration.cc'; then $(CYGPATH_W) 'SynTree/Declaration.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Declaration.cc'; fi` 2175 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Declaration.Po 2176 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Declaration.cc' object='SynTree/driver_cfa_cpp-Declaration.obj' libtool=no @AMDEPBACKSLASH@ 2177 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2178 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Declaration.obj `if test -f 'SynTree/Declaration.cc'; then $(CYGPATH_W) 'SynTree/Declaration.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Declaration.cc'; fi` 2296 2179 2297 2180 SynTree/driver_cfa_cpp-DeclarationWithType.o: SynTree/DeclarationWithType.cc 2298 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclarationWithType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo -c -o SynTree/driver_cfa_cpp-DeclarationWithType.o `test -f 'SynTree/DeclarationWithType.cc' || echo '$(srcdir)/'`SynTree/DeclarationWithType.cc2299 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Po2300 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/DeclarationWithType.cc' object='SynTree/driver_cfa_cpp-DeclarationWithType.o' libtool=no @AMDEPBACKSLASH@2301 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2302 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclarationWithType.o `test -f 'SynTree/DeclarationWithType.cc' || echo '$(srcdir)/'`SynTree/DeclarationWithType.cc2181 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclarationWithType.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo -c -o SynTree/driver_cfa_cpp-DeclarationWithType.o `test -f 'SynTree/DeclarationWithType.cc' || echo '$(srcdir)/'`SynTree/DeclarationWithType.cc 2182 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Po 2183 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/DeclarationWithType.cc' object='SynTree/driver_cfa_cpp-DeclarationWithType.o' libtool=no @AMDEPBACKSLASH@ 2184 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2185 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclarationWithType.o `test -f 'SynTree/DeclarationWithType.cc' || echo '$(srcdir)/'`SynTree/DeclarationWithType.cc 2303 2186 2304 2187 SynTree/driver_cfa_cpp-DeclarationWithType.obj: SynTree/DeclarationWithType.cc 2305 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclarationWithType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo -c -o SynTree/driver_cfa_cpp-DeclarationWithType.obj `if test -f 'SynTree/DeclarationWithType.cc'; then $(CYGPATH_W) 'SynTree/DeclarationWithType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclarationWithType.cc'; fi`2306 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Po2307 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/DeclarationWithType.cc' object='SynTree/driver_cfa_cpp-DeclarationWithType.obj' libtool=no @AMDEPBACKSLASH@2308 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2309 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclarationWithType.obj `if test -f 'SynTree/DeclarationWithType.cc'; then $(CYGPATH_W) 'SynTree/DeclarationWithType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclarationWithType.cc'; fi`2188 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-DeclarationWithType.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo -c -o SynTree/driver_cfa_cpp-DeclarationWithType.obj `if test -f 'SynTree/DeclarationWithType.cc'; then $(CYGPATH_W) 'SynTree/DeclarationWithType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclarationWithType.cc'; fi` 2189 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-DeclarationWithType.Po 2190 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/DeclarationWithType.cc' object='SynTree/driver_cfa_cpp-DeclarationWithType.obj' libtool=no @AMDEPBACKSLASH@ 2191 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2192 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-DeclarationWithType.obj `if test -f 'SynTree/DeclarationWithType.cc'; then $(CYGPATH_W) 'SynTree/DeclarationWithType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclarationWithType.cc'; fi` 2310 2193 2311 2194 SynTree/driver_cfa_cpp-ObjectDecl.o: SynTree/ObjectDecl.cc 2312 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ObjectDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo -c -o SynTree/driver_cfa_cpp-ObjectDecl.o `test -f 'SynTree/ObjectDecl.cc' || echo '$(srcdir)/'`SynTree/ObjectDecl.cc2313 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Po2314 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ObjectDecl.cc' object='SynTree/driver_cfa_cpp-ObjectDecl.o' libtool=no @AMDEPBACKSLASH@2315 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2316 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ObjectDecl.o `test -f 'SynTree/ObjectDecl.cc' || echo '$(srcdir)/'`SynTree/ObjectDecl.cc2195 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ObjectDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo -c -o SynTree/driver_cfa_cpp-ObjectDecl.o `test -f 'SynTree/ObjectDecl.cc' || echo '$(srcdir)/'`SynTree/ObjectDecl.cc 2196 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Po 2197 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ObjectDecl.cc' object='SynTree/driver_cfa_cpp-ObjectDecl.o' libtool=no @AMDEPBACKSLASH@ 2198 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2199 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ObjectDecl.o `test -f 'SynTree/ObjectDecl.cc' || echo '$(srcdir)/'`SynTree/ObjectDecl.cc 2317 2200 2318 2201 SynTree/driver_cfa_cpp-ObjectDecl.obj: SynTree/ObjectDecl.cc 2319 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ObjectDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo -c -o SynTree/driver_cfa_cpp-ObjectDecl.obj `if test -f 'SynTree/ObjectDecl.cc'; then $(CYGPATH_W) 'SynTree/ObjectDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ObjectDecl.cc'; fi`2320 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Po2321 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/ObjectDecl.cc' object='SynTree/driver_cfa_cpp-ObjectDecl.obj' libtool=no @AMDEPBACKSLASH@2322 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2323 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ObjectDecl.obj `if test -f 'SynTree/ObjectDecl.cc'; then $(CYGPATH_W) 'SynTree/ObjectDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ObjectDecl.cc'; fi`2202 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-ObjectDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo -c -o SynTree/driver_cfa_cpp-ObjectDecl.obj `if test -f 'SynTree/ObjectDecl.cc'; then $(CYGPATH_W) 'SynTree/ObjectDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ObjectDecl.cc'; fi` 2203 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-ObjectDecl.Po 2204 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/ObjectDecl.cc' object='SynTree/driver_cfa_cpp-ObjectDecl.obj' libtool=no @AMDEPBACKSLASH@ 2205 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2206 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-ObjectDecl.obj `if test -f 'SynTree/ObjectDecl.cc'; then $(CYGPATH_W) 'SynTree/ObjectDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ObjectDecl.cc'; fi` 2324 2207 2325 2208 SynTree/driver_cfa_cpp-FunctionDecl.o: SynTree/FunctionDecl.cc 2326 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo -c -o SynTree/driver_cfa_cpp-FunctionDecl.o `test -f 'SynTree/FunctionDecl.cc' || echo '$(srcdir)/'`SynTree/FunctionDecl.cc2327 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Po2328 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/FunctionDecl.cc' object='SynTree/driver_cfa_cpp-FunctionDecl.o' libtool=no @AMDEPBACKSLASH@2329 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2330 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionDecl.o `test -f 'SynTree/FunctionDecl.cc' || echo '$(srcdir)/'`SynTree/FunctionDecl.cc2209 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo -c -o SynTree/driver_cfa_cpp-FunctionDecl.o `test -f 'SynTree/FunctionDecl.cc' || echo '$(srcdir)/'`SynTree/FunctionDecl.cc 2210 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Po 2211 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/FunctionDecl.cc' object='SynTree/driver_cfa_cpp-FunctionDecl.o' libtool=no @AMDEPBACKSLASH@ 2212 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2213 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionDecl.o `test -f 'SynTree/FunctionDecl.cc' || echo '$(srcdir)/'`SynTree/FunctionDecl.cc 2331 2214 2332 2215 SynTree/driver_cfa_cpp-FunctionDecl.obj: SynTree/FunctionDecl.cc 2333 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo -c -o SynTree/driver_cfa_cpp-FunctionDecl.obj `if test -f 'SynTree/FunctionDecl.cc'; then $(CYGPATH_W) 'SynTree/FunctionDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionDecl.cc'; fi`2334 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Po2335 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/FunctionDecl.cc' object='SynTree/driver_cfa_cpp-FunctionDecl.obj' libtool=no @AMDEPBACKSLASH@2336 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2337 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionDecl.obj `if test -f 'SynTree/FunctionDecl.cc'; then $(CYGPATH_W) 'SynTree/FunctionDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionDecl.cc'; fi`2216 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-FunctionDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo -c -o SynTree/driver_cfa_cpp-FunctionDecl.obj `if test -f 'SynTree/FunctionDecl.cc'; then $(CYGPATH_W) 'SynTree/FunctionDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionDecl.cc'; fi` 2217 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-FunctionDecl.Po 2218 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/FunctionDecl.cc' object='SynTree/driver_cfa_cpp-FunctionDecl.obj' libtool=no @AMDEPBACKSLASH@ 2219 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2220 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-FunctionDecl.obj `if test -f 'SynTree/FunctionDecl.cc'; then $(CYGPATH_W) 'SynTree/FunctionDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionDecl.cc'; fi` 2338 2221 2339 2222 SynTree/driver_cfa_cpp-AggregateDecl.o: SynTree/AggregateDecl.cc 2340 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AggregateDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo -c -o SynTree/driver_cfa_cpp-AggregateDecl.o `test -f 'SynTree/AggregateDecl.cc' || echo '$(srcdir)/'`SynTree/AggregateDecl.cc2341 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Po2342 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AggregateDecl.cc' object='SynTree/driver_cfa_cpp-AggregateDecl.o' libtool=no @AMDEPBACKSLASH@2343 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2344 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AggregateDecl.o `test -f 'SynTree/AggregateDecl.cc' || echo '$(srcdir)/'`SynTree/AggregateDecl.cc2223 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AggregateDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo -c -o SynTree/driver_cfa_cpp-AggregateDecl.o `test -f 'SynTree/AggregateDecl.cc' || echo '$(srcdir)/'`SynTree/AggregateDecl.cc 2224 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Po 2225 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AggregateDecl.cc' object='SynTree/driver_cfa_cpp-AggregateDecl.o' libtool=no @AMDEPBACKSLASH@ 2226 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2227 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AggregateDecl.o `test -f 'SynTree/AggregateDecl.cc' || echo '$(srcdir)/'`SynTree/AggregateDecl.cc 2345 2228 2346 2229 SynTree/driver_cfa_cpp-AggregateDecl.obj: SynTree/AggregateDecl.cc 2347 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AggregateDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo -c -o SynTree/driver_cfa_cpp-AggregateDecl.obj `if test -f 'SynTree/AggregateDecl.cc'; then $(CYGPATH_W) 'SynTree/AggregateDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AggregateDecl.cc'; fi`2348 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Po2349 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AggregateDecl.cc' object='SynTree/driver_cfa_cpp-AggregateDecl.obj' libtool=no @AMDEPBACKSLASH@2350 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2351 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AggregateDecl.obj `if test -f 'SynTree/AggregateDecl.cc'; then $(CYGPATH_W) 'SynTree/AggregateDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AggregateDecl.cc'; fi`2230 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AggregateDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo -c -o SynTree/driver_cfa_cpp-AggregateDecl.obj `if test -f 'SynTree/AggregateDecl.cc'; then $(CYGPATH_W) 'SynTree/AggregateDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AggregateDecl.cc'; fi` 2231 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AggregateDecl.Po 2232 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/AggregateDecl.cc' object='SynTree/driver_cfa_cpp-AggregateDecl.obj' libtool=no @AMDEPBACKSLASH@ 2233 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2234 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AggregateDecl.obj `if test -f 'SynTree/AggregateDecl.cc'; then $(CYGPATH_W) 'SynTree/AggregateDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AggregateDecl.cc'; fi` 2352 2235 2353 2236 SynTree/driver_cfa_cpp-NamedTypeDecl.o: SynTree/NamedTypeDecl.cc 2354 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-NamedTypeDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.o `test -f 'SynTree/NamedTypeDecl.cc' || echo '$(srcdir)/'`SynTree/NamedTypeDecl.cc2355 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Po2356 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/NamedTypeDecl.cc' object='SynTree/driver_cfa_cpp-NamedTypeDecl.o' libtool=no @AMDEPBACKSLASH@2357 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2358 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.o `test -f 'SynTree/NamedTypeDecl.cc' || echo '$(srcdir)/'`SynTree/NamedTypeDecl.cc2237 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-NamedTypeDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.o `test -f 'SynTree/NamedTypeDecl.cc' || echo '$(srcdir)/'`SynTree/NamedTypeDecl.cc 2238 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Po 2239 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/NamedTypeDecl.cc' object='SynTree/driver_cfa_cpp-NamedTypeDecl.o' libtool=no @AMDEPBACKSLASH@ 2240 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2241 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.o `test -f 'SynTree/NamedTypeDecl.cc' || echo '$(srcdir)/'`SynTree/NamedTypeDecl.cc 2359 2242 2360 2243 SynTree/driver_cfa_cpp-NamedTypeDecl.obj: SynTree/NamedTypeDecl.cc 2361 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-NamedTypeDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.obj `if test -f 'SynTree/NamedTypeDecl.cc'; then $(CYGPATH_W) 'SynTree/NamedTypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/NamedTypeDecl.cc'; fi`2362 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Po2363 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/NamedTypeDecl.cc' object='SynTree/driver_cfa_cpp-NamedTypeDecl.obj' libtool=no @AMDEPBACKSLASH@2364 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2365 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.obj `if test -f 'SynTree/NamedTypeDecl.cc'; then $(CYGPATH_W) 'SynTree/NamedTypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/NamedTypeDecl.cc'; fi`2244 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-NamedTypeDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.obj `if test -f 'SynTree/NamedTypeDecl.cc'; then $(CYGPATH_W) 'SynTree/NamedTypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/NamedTypeDecl.cc'; fi` 2245 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-NamedTypeDecl.Po 2246 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/NamedTypeDecl.cc' object='SynTree/driver_cfa_cpp-NamedTypeDecl.obj' libtool=no @AMDEPBACKSLASH@ 2247 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2248 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-NamedTypeDecl.obj `if test -f 'SynTree/NamedTypeDecl.cc'; then $(CYGPATH_W) 'SynTree/NamedTypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/NamedTypeDecl.cc'; fi` 2366 2249 2367 2250 SynTree/driver_cfa_cpp-TypeDecl.o: SynTree/TypeDecl.cc 2368 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-TypeDecl.o `test -f 'SynTree/TypeDecl.cc' || echo '$(srcdir)/'`SynTree/TypeDecl.cc2369 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Po2370 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeDecl.cc' object='SynTree/driver_cfa_cpp-TypeDecl.o' libtool=no @AMDEPBACKSLASH@2371 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2372 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeDecl.o `test -f 'SynTree/TypeDecl.cc' || echo '$(srcdir)/'`SynTree/TypeDecl.cc2251 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeDecl.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-TypeDecl.o `test -f 'SynTree/TypeDecl.cc' || echo '$(srcdir)/'`SynTree/TypeDecl.cc 2252 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Po 2253 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeDecl.cc' object='SynTree/driver_cfa_cpp-TypeDecl.o' libtool=no @AMDEPBACKSLASH@ 2254 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2255 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeDecl.o `test -f 'SynTree/TypeDecl.cc' || echo '$(srcdir)/'`SynTree/TypeDecl.cc 2373 2256 2374 2257 SynTree/driver_cfa_cpp-TypeDecl.obj: SynTree/TypeDecl.cc 2375 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-TypeDecl.obj `if test -f 'SynTree/TypeDecl.cc'; then $(CYGPATH_W) 'SynTree/TypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeDecl.cc'; fi`2376 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Po2377 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeDecl.cc' object='SynTree/driver_cfa_cpp-TypeDecl.obj' libtool=no @AMDEPBACKSLASH@2378 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2379 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeDecl.obj `if test -f 'SynTree/TypeDecl.cc'; then $(CYGPATH_W) 'SynTree/TypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeDecl.cc'; fi`2258 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo -c -o SynTree/driver_cfa_cpp-TypeDecl.obj `if test -f 'SynTree/TypeDecl.cc'; then $(CYGPATH_W) 'SynTree/TypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeDecl.cc'; fi` 2259 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeDecl.Po 2260 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeDecl.cc' object='SynTree/driver_cfa_cpp-TypeDecl.obj' libtool=no @AMDEPBACKSLASH@ 2261 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2262 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeDecl.obj `if test -f 'SynTree/TypeDecl.cc'; then $(CYGPATH_W) 'SynTree/TypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeDecl.cc'; fi` 2380 2263 2381 2264 SynTree/driver_cfa_cpp-Initializer.o: SynTree/Initializer.cc 2382 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Initializer.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo -c -o SynTree/driver_cfa_cpp-Initializer.o `test -f 'SynTree/Initializer.cc' || echo '$(srcdir)/'`SynTree/Initializer.cc2383 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Po2384 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Initializer.cc' object='SynTree/driver_cfa_cpp-Initializer.o' libtool=no @AMDEPBACKSLASH@2385 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2386 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Initializer.o `test -f 'SynTree/Initializer.cc' || echo '$(srcdir)/'`SynTree/Initializer.cc2265 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Initializer.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo -c -o SynTree/driver_cfa_cpp-Initializer.o `test -f 'SynTree/Initializer.cc' || echo '$(srcdir)/'`SynTree/Initializer.cc 2266 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Po 2267 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Initializer.cc' object='SynTree/driver_cfa_cpp-Initializer.o' libtool=no @AMDEPBACKSLASH@ 2268 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2269 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Initializer.o `test -f 'SynTree/Initializer.cc' || echo '$(srcdir)/'`SynTree/Initializer.cc 2387 2270 2388 2271 SynTree/driver_cfa_cpp-Initializer.obj: SynTree/Initializer.cc 2389 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Initializer.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo -c -o SynTree/driver_cfa_cpp-Initializer.obj `if test -f 'SynTree/Initializer.cc'; then $(CYGPATH_W) 'SynTree/Initializer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Initializer.cc'; fi`2390 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Po2391 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Initializer.cc' object='SynTree/driver_cfa_cpp-Initializer.obj' libtool=no @AMDEPBACKSLASH@2392 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2393 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Initializer.obj `if test -f 'SynTree/Initializer.cc'; then $(CYGPATH_W) 'SynTree/Initializer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Initializer.cc'; fi`2272 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Initializer.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo -c -o SynTree/driver_cfa_cpp-Initializer.obj `if test -f 'SynTree/Initializer.cc'; then $(CYGPATH_W) 'SynTree/Initializer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Initializer.cc'; fi` 2273 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Initializer.Po 2274 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Initializer.cc' object='SynTree/driver_cfa_cpp-Initializer.obj' libtool=no @AMDEPBACKSLASH@ 2275 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2276 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Initializer.obj `if test -f 'SynTree/Initializer.cc'; then $(CYGPATH_W) 'SynTree/Initializer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Initializer.cc'; fi` 2394 2277 2395 2278 SynTree/driver_cfa_cpp-Visitor.o: SynTree/Visitor.cc 2396 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Visitor.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo -c -o SynTree/driver_cfa_cpp-Visitor.o `test -f 'SynTree/Visitor.cc' || echo '$(srcdir)/'`SynTree/Visitor.cc2397 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Po2398 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Visitor.cc' object='SynTree/driver_cfa_cpp-Visitor.o' libtool=no @AMDEPBACKSLASH@2399 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2400 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Visitor.o `test -f 'SynTree/Visitor.cc' || echo '$(srcdir)/'`SynTree/Visitor.cc2279 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Visitor.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo -c -o SynTree/driver_cfa_cpp-Visitor.o `test -f 'SynTree/Visitor.cc' || echo '$(srcdir)/'`SynTree/Visitor.cc 2280 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Po 2281 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Visitor.cc' object='SynTree/driver_cfa_cpp-Visitor.o' libtool=no @AMDEPBACKSLASH@ 2282 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2283 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Visitor.o `test -f 'SynTree/Visitor.cc' || echo '$(srcdir)/'`SynTree/Visitor.cc 2401 2284 2402 2285 SynTree/driver_cfa_cpp-Visitor.obj: SynTree/Visitor.cc 2403 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Visitor.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo -c -o SynTree/driver_cfa_cpp-Visitor.obj `if test -f 'SynTree/Visitor.cc'; then $(CYGPATH_W) 'SynTree/Visitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Visitor.cc'; fi`2404 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Po2405 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Visitor.cc' object='SynTree/driver_cfa_cpp-Visitor.obj' libtool=no @AMDEPBACKSLASH@2406 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2407 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Visitor.obj `if test -f 'SynTree/Visitor.cc'; then $(CYGPATH_W) 'SynTree/Visitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Visitor.cc'; fi`2286 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Visitor.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo -c -o SynTree/driver_cfa_cpp-Visitor.obj `if test -f 'SynTree/Visitor.cc'; then $(CYGPATH_W) 'SynTree/Visitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Visitor.cc'; fi` 2287 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Po 2288 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Visitor.cc' object='SynTree/driver_cfa_cpp-Visitor.obj' libtool=no @AMDEPBACKSLASH@ 2289 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2290 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Visitor.obj `if test -f 'SynTree/Visitor.cc'; then $(CYGPATH_W) 'SynTree/Visitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Visitor.cc'; fi` 2408 2291 2409 2292 SynTree/driver_cfa_cpp-Mutator.o: SynTree/Mutator.cc 2410 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Mutator.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo -c -o SynTree/driver_cfa_cpp-Mutator.o `test -f 'SynTree/Mutator.cc' || echo '$(srcdir)/'`SynTree/Mutator.cc2411 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Po2412 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Mutator.cc' object='SynTree/driver_cfa_cpp-Mutator.o' libtool=no @AMDEPBACKSLASH@2413 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2414 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Mutator.o `test -f 'SynTree/Mutator.cc' || echo '$(srcdir)/'`SynTree/Mutator.cc2293 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Mutator.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo -c -o SynTree/driver_cfa_cpp-Mutator.o `test -f 'SynTree/Mutator.cc' || echo '$(srcdir)/'`SynTree/Mutator.cc 2294 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Po 2295 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Mutator.cc' object='SynTree/driver_cfa_cpp-Mutator.o' libtool=no @AMDEPBACKSLASH@ 2296 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2297 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Mutator.o `test -f 'SynTree/Mutator.cc' || echo '$(srcdir)/'`SynTree/Mutator.cc 2415 2298 2416 2299 SynTree/driver_cfa_cpp-Mutator.obj: SynTree/Mutator.cc 2417 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Mutator.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo -c -o SynTree/driver_cfa_cpp-Mutator.obj `if test -f 'SynTree/Mutator.cc'; then $(CYGPATH_W) 'SynTree/Mutator.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Mutator.cc'; fi` 2418 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Po 2419 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Mutator.cc' object='SynTree/driver_cfa_cpp-Mutator.obj' libtool=no @AMDEPBACKSLASH@ 2420 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2421 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Mutator.obj `if test -f 'SynTree/Mutator.cc'; then $(CYGPATH_W) 'SynTree/Mutator.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Mutator.cc'; fi` 2422 2423 SynTree/driver_cfa_cpp-AddStmtVisitor.o: SynTree/AddStmtVisitor.cc 2424 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddStmtVisitor.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Tpo -c -o SynTree/driver_cfa_cpp-AddStmtVisitor.o `test -f 'SynTree/AddStmtVisitor.cc' || echo '$(srcdir)/'`SynTree/AddStmtVisitor.cc 2425 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Po 2426 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AddStmtVisitor.cc' object='SynTree/driver_cfa_cpp-AddStmtVisitor.o' libtool=no @AMDEPBACKSLASH@ 2427 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2428 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddStmtVisitor.o `test -f 'SynTree/AddStmtVisitor.cc' || echo '$(srcdir)/'`SynTree/AddStmtVisitor.cc 2429 2430 SynTree/driver_cfa_cpp-AddStmtVisitor.obj: SynTree/AddStmtVisitor.cc 2431 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-AddStmtVisitor.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Tpo -c -o SynTree/driver_cfa_cpp-AddStmtVisitor.obj `if test -f 'SynTree/AddStmtVisitor.cc'; then $(CYGPATH_W) 'SynTree/AddStmtVisitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddStmtVisitor.cc'; fi` 2432 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-AddStmtVisitor.Po 2433 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/AddStmtVisitor.cc' object='SynTree/driver_cfa_cpp-AddStmtVisitor.obj' libtool=no @AMDEPBACKSLASH@ 2434 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2435 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-AddStmtVisitor.obj `if test -f 'SynTree/AddStmtVisitor.cc'; then $(CYGPATH_W) 'SynTree/AddStmtVisitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddStmtVisitor.cc'; fi` 2300 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Mutator.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo -c -o SynTree/driver_cfa_cpp-Mutator.obj `if test -f 'SynTree/Mutator.cc'; then $(CYGPATH_W) 'SynTree/Mutator.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Mutator.cc'; fi` 2301 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Mutator.Po 2302 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/Mutator.cc' object='SynTree/driver_cfa_cpp-Mutator.obj' libtool=no @AMDEPBACKSLASH@ 2303 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2304 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Mutator.obj `if test -f 'SynTree/Mutator.cc'; then $(CYGPATH_W) 'SynTree/Mutator.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Mutator.cc'; fi` 2436 2305 2437 2306 SynTree/driver_cfa_cpp-TypeSubstitution.o: SynTree/TypeSubstitution.cc 2438 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeSubstitution.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo -c -o SynTree/driver_cfa_cpp-TypeSubstitution.o `test -f 'SynTree/TypeSubstitution.cc' || echo '$(srcdir)/'`SynTree/TypeSubstitution.cc2439 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Po2440 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeSubstitution.cc' object='SynTree/driver_cfa_cpp-TypeSubstitution.o' libtool=no @AMDEPBACKSLASH@2441 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2442 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeSubstitution.o `test -f 'SynTree/TypeSubstitution.cc' || echo '$(srcdir)/'`SynTree/TypeSubstitution.cc2307 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeSubstitution.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo -c -o SynTree/driver_cfa_cpp-TypeSubstitution.o `test -f 'SynTree/TypeSubstitution.cc' || echo '$(srcdir)/'`SynTree/TypeSubstitution.cc 2308 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Po 2309 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeSubstitution.cc' object='SynTree/driver_cfa_cpp-TypeSubstitution.o' libtool=no @AMDEPBACKSLASH@ 2310 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2311 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeSubstitution.o `test -f 'SynTree/TypeSubstitution.cc' || echo '$(srcdir)/'`SynTree/TypeSubstitution.cc 2443 2312 2444 2313 SynTree/driver_cfa_cpp-TypeSubstitution.obj: SynTree/TypeSubstitution.cc 2445 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeSubstitution.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo -c -o SynTree/driver_cfa_cpp-TypeSubstitution.obj `if test -f 'SynTree/TypeSubstitution.cc'; then $(CYGPATH_W) 'SynTree/TypeSubstitution.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeSubstitution.cc'; fi` 2446 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Po 2447 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/TypeSubstitution.cc' object='SynTree/driver_cfa_cpp-TypeSubstitution.obj' libtool=no @AMDEPBACKSLASH@ 2448 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2449 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeSubstitution.obj `if test -f 'SynTree/TypeSubstitution.cc'; then $(CYGPATH_W) 'SynTree/TypeSubstitution.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeSubstitution.cc'; fi` 2450 2451 SynTree/driver_cfa_cpp-Attribute.o: SynTree/Attribute.cc 2452 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Attribute.o -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Tpo -c -o SynTree/driver_cfa_cpp-Attribute.o `test -f 'SynTree/Attribute.cc' || echo '$(srcdir)/'`SynTree/Attribute.cc 2453 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Po 2454 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Attribute.cc' object='SynTree/driver_cfa_cpp-Attribute.o' libtool=no @AMDEPBACKSLASH@ 2455 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2456 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Attribute.o `test -f 'SynTree/Attribute.cc' || echo '$(srcdir)/'`SynTree/Attribute.cc 2457 2458 SynTree/driver_cfa_cpp-Attribute.obj: SynTree/Attribute.cc 2459 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-Attribute.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Tpo -c -o SynTree/driver_cfa_cpp-Attribute.obj `if test -f 'SynTree/Attribute.cc'; then $(CYGPATH_W) 'SynTree/Attribute.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Attribute.cc'; fi` 2460 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-Attribute.Po 2461 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SynTree/Attribute.cc' object='SynTree/driver_cfa_cpp-Attribute.obj' libtool=no @AMDEPBACKSLASH@ 2462 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2463 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Attribute.obj `if test -f 'SynTree/Attribute.cc'; then $(CYGPATH_W) 'SynTree/Attribute.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Attribute.cc'; fi` 2314 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/driver_cfa_cpp-TypeSubstitution.obj -MD -MP -MF SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo -c -o SynTree/driver_cfa_cpp-TypeSubstitution.obj `if test -f 'SynTree/TypeSubstitution.cc'; then $(CYGPATH_W) 'SynTree/TypeSubstitution.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeSubstitution.cc'; fi` 2315 @am__fastdepCXX_TRUE@ $(am__mv) SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Tpo SynTree/$(DEPDIR)/driver_cfa_cpp-TypeSubstitution.Po 2316 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SynTree/TypeSubstitution.cc' object='SynTree/driver_cfa_cpp-TypeSubstitution.obj' libtool=no @AMDEPBACKSLASH@ 2317 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2318 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-TypeSubstitution.obj `if test -f 'SynTree/TypeSubstitution.cc'; then $(CYGPATH_W) 'SynTree/TypeSubstitution.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeSubstitution.cc'; fi` 2464 2319 2465 2320 Tuples/driver_cfa_cpp-Mutate.o: Tuples/Mutate.cc 2466 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-Mutate.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o Tuples/driver_cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc2467 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po2468 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/Mutate.cc' object='Tuples/driver_cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@2469 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2470 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc2321 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-Mutate.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o Tuples/driver_cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc 2322 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po 2323 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/Mutate.cc' object='Tuples/driver_cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@ 2324 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2325 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc 2471 2326 2472 2327 Tuples/driver_cfa_cpp-Mutate.obj: Tuples/Mutate.cc 2473 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-Mutate.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o Tuples/driver_cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi`2474 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po2475 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/Mutate.cc' object='Tuples/driver_cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@2476 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2477 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi`2328 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-Mutate.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o Tuples/driver_cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi` 2329 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po 2330 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/Mutate.cc' object='Tuples/driver_cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@ 2331 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2332 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi` 2478 2333 2479 2334 Tuples/driver_cfa_cpp-AssignExpand.o: Tuples/AssignExpand.cc 2480 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-AssignExpand.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo -c -o Tuples/driver_cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc2481 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po2482 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/AssignExpand.cc' object='Tuples/driver_cfa_cpp-AssignExpand.o' libtool=no @AMDEPBACKSLASH@2483 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2484 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc2335 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-AssignExpand.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo -c -o Tuples/driver_cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc 2336 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po 2337 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/AssignExpand.cc' object='Tuples/driver_cfa_cpp-AssignExpand.o' libtool=no @AMDEPBACKSLASH@ 2338 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2339 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc 2485 2340 2486 2341 Tuples/driver_cfa_cpp-AssignExpand.obj: Tuples/AssignExpand.cc 2487 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-AssignExpand.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo -c -o Tuples/driver_cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi`2488 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po2489 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/AssignExpand.cc' object='Tuples/driver_cfa_cpp-AssignExpand.obj' libtool=no @AMDEPBACKSLASH@2490 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2491 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi`2342 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-AssignExpand.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo -c -o Tuples/driver_cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi` 2343 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po 2344 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/AssignExpand.cc' object='Tuples/driver_cfa_cpp-AssignExpand.obj' libtool=no @AMDEPBACKSLASH@ 2345 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2346 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi` 2492 2347 2493 2348 Tuples/driver_cfa_cpp-FunctionFixer.o: Tuples/FunctionFixer.cc 2494 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionFixer.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo -c -o Tuples/driver_cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc2495 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po2496 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionFixer.cc' object='Tuples/driver_cfa_cpp-FunctionFixer.o' libtool=no @AMDEPBACKSLASH@2497 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2498 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc2349 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionFixer.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo -c -o Tuples/driver_cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc 2350 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po 2351 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/FunctionFixer.cc' object='Tuples/driver_cfa_cpp-FunctionFixer.o' libtool=no @AMDEPBACKSLASH@ 2352 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2353 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc 2499 2354 2500 2355 Tuples/driver_cfa_cpp-FunctionFixer.obj: Tuples/FunctionFixer.cc 2501 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionFixer.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo -c -o Tuples/driver_cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi`2502 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po2503 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionFixer.cc' object='Tuples/driver_cfa_cpp-FunctionFixer.obj' libtool=no @AMDEPBACKSLASH@2504 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2505 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi`2356 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionFixer.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo -c -o Tuples/driver_cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi` 2357 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po 2358 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/FunctionFixer.cc' object='Tuples/driver_cfa_cpp-FunctionFixer.obj' libtool=no @AMDEPBACKSLASH@ 2359 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2360 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi` 2506 2361 2507 2362 Tuples/driver_cfa_cpp-TupleAssignment.o: Tuples/TupleAssignment.cc 2508 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-TupleAssignment.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo -c -o Tuples/driver_cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc2509 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Po2510 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/TupleAssignment.cc' object='Tuples/driver_cfa_cpp-TupleAssignment.o' libtool=no @AMDEPBACKSLASH@2511 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2512 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc2363 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-TupleAssignment.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo -c -o Tuples/driver_cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc 2364 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Po 2365 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/TupleAssignment.cc' object='Tuples/driver_cfa_cpp-TupleAssignment.o' libtool=no @AMDEPBACKSLASH@ 2366 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2367 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc 2513 2368 2514 2369 Tuples/driver_cfa_cpp-TupleAssignment.obj: Tuples/TupleAssignment.cc 2515 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-TupleAssignment.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo -c -o Tuples/driver_cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi`2516 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Po2517 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/TupleAssignment.cc' object='Tuples/driver_cfa_cpp-TupleAssignment.obj' libtool=no @AMDEPBACKSLASH@2518 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2519 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi`2370 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-TupleAssignment.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo -c -o Tuples/driver_cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi` 2371 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Po 2372 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/TupleAssignment.cc' object='Tuples/driver_cfa_cpp-TupleAssignment.obj' libtool=no @AMDEPBACKSLASH@ 2373 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2374 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi` 2520 2375 2521 2376 Tuples/driver_cfa_cpp-FunctionChecker.o: Tuples/FunctionChecker.cc 2522 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionChecker.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo -c -o Tuples/driver_cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc2523 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po2524 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionChecker.cc' object='Tuples/driver_cfa_cpp-FunctionChecker.o' libtool=no @AMDEPBACKSLASH@2525 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2526 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc2377 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionChecker.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo -c -o Tuples/driver_cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc 2378 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po 2379 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/FunctionChecker.cc' object='Tuples/driver_cfa_cpp-FunctionChecker.o' libtool=no @AMDEPBACKSLASH@ 2380 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2381 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc 2527 2382 2528 2383 Tuples/driver_cfa_cpp-FunctionChecker.obj: Tuples/FunctionChecker.cc 2529 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionChecker.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo -c -o Tuples/driver_cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi`2530 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po2531 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionChecker.cc' object='Tuples/driver_cfa_cpp-FunctionChecker.obj' libtool=no @AMDEPBACKSLASH@2532 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2533 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi`2384 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionChecker.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo -c -o Tuples/driver_cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi` 2385 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po 2386 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/FunctionChecker.cc' object='Tuples/driver_cfa_cpp-FunctionChecker.obj' libtool=no @AMDEPBACKSLASH@ 2387 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2388 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi` 2534 2389 2535 2390 Tuples/driver_cfa_cpp-NameMatcher.o: Tuples/NameMatcher.cc 2536 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-NameMatcher.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo -c -o Tuples/driver_cfa_cpp-NameMatcher.o `test -f 'Tuples/NameMatcher.cc' || echo '$(srcdir)/'`Tuples/NameMatcher.cc2537 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Po2538 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/NameMatcher.cc' object='Tuples/driver_cfa_cpp-NameMatcher.o' libtool=no @AMDEPBACKSLASH@2539 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2540 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-NameMatcher.o `test -f 'Tuples/NameMatcher.cc' || echo '$(srcdir)/'`Tuples/NameMatcher.cc2391 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-NameMatcher.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo -c -o Tuples/driver_cfa_cpp-NameMatcher.o `test -f 'Tuples/NameMatcher.cc' || echo '$(srcdir)/'`Tuples/NameMatcher.cc 2392 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Po 2393 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/NameMatcher.cc' object='Tuples/driver_cfa_cpp-NameMatcher.o' libtool=no @AMDEPBACKSLASH@ 2394 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2395 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-NameMatcher.o `test -f 'Tuples/NameMatcher.cc' || echo '$(srcdir)/'`Tuples/NameMatcher.cc 2541 2396 2542 2397 Tuples/driver_cfa_cpp-NameMatcher.obj: Tuples/NameMatcher.cc 2543 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-NameMatcher.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo -c -o Tuples/driver_cfa_cpp-NameMatcher.obj `if test -f 'Tuples/NameMatcher.cc'; then $(CYGPATH_W) 'Tuples/NameMatcher.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/NameMatcher.cc'; fi`2544 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Po2545 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/NameMatcher.cc' object='Tuples/driver_cfa_cpp-NameMatcher.obj' libtool=no @AMDEPBACKSLASH@2546 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2547 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-NameMatcher.obj `if test -f 'Tuples/NameMatcher.cc'; then $(CYGPATH_W) 'Tuples/NameMatcher.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/NameMatcher.cc'; fi`2398 @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-NameMatcher.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo -c -o Tuples/driver_cfa_cpp-NameMatcher.obj `if test -f 'Tuples/NameMatcher.cc'; then $(CYGPATH_W) 'Tuples/NameMatcher.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/NameMatcher.cc'; fi` 2399 @am__fastdepCXX_TRUE@ $(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Po 2400 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Tuples/NameMatcher.cc' object='Tuples/driver_cfa_cpp-NameMatcher.obj' libtool=no @AMDEPBACKSLASH@ 2401 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2402 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-NameMatcher.obj `if test -f 'Tuples/NameMatcher.cc'; then $(CYGPATH_W) 'Tuples/NameMatcher.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/NameMatcher.cc'; fi` 2548 2403 2549 2404 .ll.cc: 2550 $( AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)2405 $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) 2551 2406 2552 2407 .yy.cc: 2553 $( AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)2408 $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) 2554 2409 2555 2410 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -
src/Parser/DeclarationNode.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // DeclarationNode.cc -- 7 // DeclarationNode.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 12:34:05 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Thu Apr 14 15:38:09201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 13 16:53:17 2016 13 13 // Update Count : 161 14 14 // … … 97 97 os << endl << string( indent + 2, ' ' ) << "with initializer "; 98 98 initializer->printOneLine( os ); 99 os << " maybe constructed? " << initializer->get_maybeConstructed();100 101 99 } // if 102 100 … … 355 353 } // if 356 354 } 357 355 358 356 DeclarationNode *DeclarationNode::addQualifiers( DeclarationNode *q ) { 359 357 if ( q ) { … … 506 504 assert( false ); 507 505 } // switch 508 506 509 507 return this; 510 508 } … … 617 615 assert( a->type->kind == TypeData::Array ); 618 616 TypeData *lastArray = findLast( a->type ); 619 if ( type ) { 617 if ( type ) { 620 618 switch ( type->kind ) { 621 619 case TypeData::Aggregate: … … 661 659 } // if 662 660 } 663 661 664 662 DeclarationNode *DeclarationNode::addIdList( DeclarationNode *ids ) { 665 663 type = addIdListToType( type, ids ); … … 866 864 Type *DeclarationNode::buildType() const { 867 865 assert( type ); 868 866 869 867 switch ( type->kind ) { 870 868 case TypeData::Enum: -
src/Parser/ExpressionNode.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ExpressionNode.cc -- 8 // 7 // ExpressionNode.cc -- 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 13 14:46:17201613 // Update Count : 30714 // 12 // Last Modified On : Fri Apr 8 15:43:05 2016 13 // Update Count : 296 14 // 15 15 16 16 #include <cassert> … … 32 32 using namespace std; 33 33 34 ExpressionNode::ExpressionNode() : ParseNode() {}35 36 ExpressionNode::ExpressionNode( const string *name ) : ParseNode( name ) {}37 38 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ) , extension( other.extension ){34 ExpressionNode::ExpressionNode() : ParseNode(), argName( 0 ) {} 35 36 ExpressionNode::ExpressionNode( const string *name ) : ParseNode( name ), argName( 0 ) {} 37 38 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ) { 39 39 if ( other.argName ) { 40 40 argName = other.argName->clone(); … … 231 231 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 232 232 value.insert( value.length() - 1, newValue->substr( 1, newValue->length() - 2 ) ); 233 233 234 234 delete newValue; // allocated by lexer 235 235 return this; … … 344 344 345 345 Expression *DesignatorNode::build() const { 346 Expression * ret = maybeBuild<Expression>(get_argName());346 Expression * ret = get_argName()->build(); 347 347 348 348 if ( isArrayIndex ) { 349 // need to traverse entire structure and change any instances of 0 or 1 to 349 // need to traverse entire structure and change any instances of 0 or 1 to 350 350 // ConstantExpr 351 351 DesignatorFixer fixer; … … 389 389 "Cond", "NCond", 390 390 // diadic 391 "SizeOf", "AlignOf", "OffsetOf", "Attr", " ?+?", "?-?", "?*?", "?/?", "?%?", "||", "&&",391 "SizeOf", "AlignOf", "OffsetOf", "Attr", "CompLit", "?+?", "?-?", "?*?", "?/?", "?%?", "||", "&&", 392 392 "?|?", "?&?", "?^?", "Cast", "?<<?", "?>>?", "?<?", "?>?", "?<=?", "?>=?", "?==?", "?!=?", 393 393 "?=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?", … … 440 440 } 441 441 442 CompositeExprNode::CompositeExprNode( const CompositeExprNode &other ) : ExpressionNode( other ), function( maybeClone( other.function ) ) , arguments( 0 ){442 CompositeExprNode::CompositeExprNode( const CompositeExprNode &other ) : ExpressionNode( other ), function( maybeClone( other.function ) ) { 443 443 ParseNode *cur = other.arguments; 444 444 while ( cur ) { … … 466 466 467 467 if ( ! ( op = dynamic_cast<OperatorNode *>( function ) ) ) { // function as opposed to operator 468 return new UntypedExpr( maybeBuild<Expression>(function), args, maybeBuild< Expression >( get_argName() ));468 return new UntypedExpr( function->build(), args, maybeBuild< Expression >( get_argName() )); 469 469 } // if 470 470 … … 550 550 if ( dynamic_cast< VoidType* >( targetType ) ) { 551 551 delete targetType; 552 return new CastExpr( maybeBuild<Expression>(expr_node), maybeBuild< Expression >( get_argName() ) );552 return new CastExpr( expr_node->build(), maybeBuild< Expression >( get_argName() ) ); 553 553 } else { 554 return new CastExpr( maybeBuild<Expression>(expr_node),targetType, maybeBuild< Expression >( get_argName() ) );554 return new CastExpr( expr_node->build(),targetType, maybeBuild< Expression >( get_argName() ) ); 555 555 } // if 556 556 } … … 608 608 { 609 609 assert( args.size() == 2 ); 610 610 611 611 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args() ) ) { 612 612 NameExpr *member = dynamic_cast<NameExpr *>( args.back() ); … … 621 621 assert( var ); 622 622 if ( ! get_args()->get_link() ) { 623 return new AttrExpr( maybeBuild<Expression>(var), ( Expression*)0);623 return new AttrExpr( var->build(), ( Expression*)0); 624 624 } else if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()->get_link()) ) { 625 return new AttrExpr( maybeBuild<Expression>(var), arg->get_decl()->buildType());625 return new AttrExpr( var->build(), arg->get_decl()->buildType()); 626 626 } else { 627 return new AttrExpr( maybeBuild<Expression>(var), args.back()); 628 } // if 629 } 627 return new AttrExpr( var->build(), args.back()); 628 } // if 629 } 630 case OperatorNode::CompLit: 631 throw UnimplementedError( "C99 compound literals" ); 632 // the short-circuited operators 630 633 case OperatorNode::Or: 631 634 case OperatorNode::And: … … 716 719 717 720 Expression *AsmExprNode::build() const { 718 return new AsmExpr( maybeBuild< Expression >( inout ), (ConstantExpr *) maybeBuild<Expression>(constraint), maybeBuild<Expression>(operand) );721 return new AsmExpr( maybeBuild< Expression >( inout ), (ConstantExpr *)constraint->build(), operand->build() ); 719 722 } 720 723 … … 793 796 794 797 Expression *ValofExprNode::build() const { 795 return new UntypedValofExpr ( maybeBuild<Statement>(get_body()), maybeBuild< Expression >( get_argName() ) );798 return new UntypedValofExpr ( get_body()->build(), maybeBuild< Expression >( get_argName() ) ); 796 799 } 797 800 … … 905 908 906 909 Expression *CompoundLiteralNode::build() const { 907 Declaration * newDecl = maybeBuild<Declaration>(type);// compound literal type910 Declaration * newDecl = type->build(); // compound literal type 908 911 if ( DeclarationWithType * newDeclWithType = dynamic_cast< DeclarationWithType * >( newDecl ) ) { // non-sue compound-literal type 909 return new CompoundLiteralExpr( newDeclWithType->get_type(), maybeBuild<Initializer>(kids) );912 return new CompoundLiteralExpr( newDeclWithType->get_type(), kids->build() ); 910 913 // these types do not have associated type information 911 914 } else if ( StructDecl * newDeclStructDecl = dynamic_cast< StructDecl * >( newDecl ) ) { 912 return new CompoundLiteralExpr( new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ), maybeBuild<Initializer>(kids) );915 return new CompoundLiteralExpr( new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ), kids->build() ); 913 916 } else if ( UnionDecl * newDeclUnionDecl = dynamic_cast< UnionDecl * >( newDecl ) ) { 914 return new CompoundLiteralExpr( new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ), maybeBuild<Initializer>(kids) );917 return new CompoundLiteralExpr( new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ), kids->build() ); 915 918 } else if ( EnumDecl * newDeclEnumDecl = dynamic_cast< EnumDecl * >( newDecl ) ) { 916 return new CompoundLiteralExpr( new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ), maybeBuild<Initializer>(kids) );919 return new CompoundLiteralExpr( new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ), kids->build() ); 917 920 } else { 918 921 assert( false ); -
src/Parser/InitializerNode.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // InitializerNode.cc -- 8 // 7 // InitializerNode.cc -- 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:20:24 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Thu Jan 07 13:32:57 201613 // Update Count : 1314 // 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Oct 8 17:18:55 2015 13 // Update Count : 4 14 // 15 15 16 16 #include <cassert> … … 23 23 24 24 InitializerNode::InitializerNode( ExpressionNode *_expr, bool aggrp, ExpressionNode *des ) 25 : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ) , maybeConstructed( true ){25 : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ) { 26 26 if ( aggrp ) 27 27 kids = dynamic_cast< InitializerNode *>( get_link() ); … … 32 32 33 33 InitializerNode::InitializerNode( InitializerNode *init, bool aggrp, ExpressionNode *des ) 34 : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ) , maybeConstructed( true ){34 : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ) { 35 35 if ( init != 0 ) 36 36 set_link(init); … … 91 91 } // if 92 92 93 return new ListInit( initlist, designlist , maybeConstructed);93 return new ListInit( initlist, designlist ); 94 94 } else { 95 95 std::list< Expression *> designators; … … 99 99 100 100 if ( get_expression() != 0) 101 return new SingleInit( get_expression()->build(), designators , maybeConstructed);101 return new SingleInit( get_expression()->build(), designators ); 102 102 } // if 103 103 -
src/Parser/ParseNode.h
rf80e0218 r1b5c81ed 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:28:16 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Mon Jun 27 23:28:10201613 // Update Count : 2 4211 // Last Modified By : Rob Schluntz 12 // Last Modified On : Mon Apr 11 11:50:52 2016 13 // Update Count : 205 14 14 // 15 15 … … 20 20 #include <list> 21 21 #include <iterator> 22 #include <memory>23 22 24 23 #include "Common/utility.h" 25 24 #include "Parser/LinkageSpec.h" 26 25 #include "SynTree/Type.h" 27 #include "SynTree/Expression.h"28 26 //#include "SynTree/Declaration.h" 29 27 #include "Common/UniqueName.h" 30 #include "SynTree/Label.h"31 28 32 29 class ExpressionNode; … … 82 79 ExpressionNode *set_argName( const std::string *aName ); 83 80 ExpressionNode *set_argName( ExpressionNode *aDesignator ); 84 bool get_extension() const { return extension; }85 ExpressionNode *set_extension( bool exten ) { extension = exten; return this; }86 81 87 82 virtual void print( std::ostream &, int indent = 0) const = 0; … … 92 87 void printDesignation ( std::ostream &, int indent = 0) const; 93 88 private: 94 ExpressionNode *argName = 0; 95 bool extension = false; 96 }; 97 98 template< typename T > 99 struct maybeBuild_t<Expression, T> { 100 static inline Expression * doit( const T *orig ) { 101 if ( orig ) { 102 Expression *p = orig->build(); 103 p->set_extension( orig->get_extension() ); 104 return p; 105 } else { 106 return 0; 107 } // if 108 } 89 ExpressionNode *argName; 109 90 }; 110 91 … … 198 179 Cond, NCond, 199 180 // diadic 200 SizeOf, AlignOf, OffsetOf, Attr, Plus, Minus, Mul, Div, Mod, Or, And,181 SizeOf, AlignOf, OffsetOf, Attr, CompLit, Plus, Minus, Mul, Div, Mod, Or, And, 201 182 BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq, 202 183 Assign, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn, … … 204 185 // monadic 205 186 UnPlus, UnMinus, AddressOf, PointTo, Neg, BitNeg, Incr, IncrPost, Decr, DecrPost, LabelAddress, 206 Ctor, Dtor,207 187 }; 208 188 … … 285 265 virtual void printOneLine( std::ostream &, int indent = 0) const; 286 266 287 const std::list< Label> &get_labels() const { return labels; };267 const std::list< std::string > &get_labels() const { return labels; }; 288 268 void append_label( std::string *label ) { labels.push_back( *label ); delete label; } 289 269 private: 290 std::list< Label> labels;270 std::list< std::string > labels; 291 271 }; 292 272 … … 426 406 ExpressionNode *get_enumeratorValue() const { return enumeratorValue; } 427 407 428 bool get_extension() const { return extension; }429 DeclarationNode *set_extension( bool exten ) { extension = exten; return this; }430 431 408 DeclarationNode(); 432 409 ~DeclarationNode(); … … 444 421 bool hasEllipsis; 445 422 LinkageSpec::Type linkage; 446 bool extension = false;447 423 448 424 static UniqueName anonymous; … … 481 457 void addDeclaration( DeclarationNode *newDecl ) { decl = newDecl; } 482 458 void setCatchRest( bool newVal ) { isCatchRest = newVal; } 483 484 bool get_extension() const { return extension; }485 StatementNode *set_extension( bool exten ) { extension = exten; return this; }486 459 487 460 std::string get_target() const; … … 503 476 DeclarationNode *decl; 504 477 bool isCatchRest; 505 bool extension = false;506 478 }; // StatementNode 507 479 … … 533 505 ExpressionNode *output, *input; 534 506 ConstantNode *clobber; 535 std::list< Label> gotolabels;507 std::list<std::string> gotolabels; 536 508 }; 537 509 … … 552 524 InitializerNode *set_designators( ExpressionNode *des ) { designator = des; return this; } 553 525 ExpressionNode *get_designators() const { return designator; } 554 555 InitializerNode *set_maybeConstructed( bool value ) { maybeConstructed = value; return this; }556 bool get_maybeConstructed() const { return maybeConstructed; }557 526 558 527 InitializerNode *next_init() const { return kids; } … … 567 536 ExpressionNode *designator; // may be list 568 537 InitializerNode *kids; 569 bool maybeConstructed;570 538 }; 571 539 … … 601 569 while ( cur ) { 602 570 try { 603 // SynTreeType *result = dynamic_cast< SynTreeType *>( maybeBuild<typename std::result_of<decltype(&NodeType::build)(NodeType)>::type>( cur ) ); 604 SynTreeType *result = dynamic_cast< SynTreeType *>( maybeBuild<typename std::pointer_traits<decltype(cur->build())>::element_type>( cur ) ); 571 SynTreeType *result = dynamic_cast< SynTreeType *>( cur->build() ); 605 572 if ( result ) { 606 573 *out++ = result; -
src/Parser/StatementNode.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // StatementNode.cc -- 7 // StatementNode.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Ju n 9 14:18:46 201613 // Update Count : 13 212 // Last Modified On : Thu Jul 30 14:39:39 2015 13 // Update Count : 130 14 14 // 15 15 … … 27 27 28 28 const char *StatementNode::StType[] = { 29 "Exp", "If", "Switch", "Case", "Default", "Choose", "Fallthru", 30 "While", "Do", "For", 29 "Exp", "If", "Switch", "Case", "Default", "Choose", "Fallthru", 30 "While", "Do", "For", 31 31 "Goto", "Continue", "Break", "Return", "Throw", 32 32 "Try", "Catch", "Finally", "Asm", … … 62 62 StatementNode::StatementNode( Type t, ExpressionNode *ctrl_label, StatementNode *block ) : type( t ), control( ctrl_label ), block( block ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) { 63 63 this->control = ( t == Default ) ? 0 : control; 64 } 64 } 65 65 66 66 StatementNode::StatementNode( Type t, string *target ) : type( t ), control( 0 ), block( 0 ), labels( 0 ), target( target ), decl( 0 ), isCatchRest ( false ) {} … … 74 74 75 75 StatementNode * StatementNode::newCatchStmt( DeclarationNode *d, StatementNode *s, bool catchRestP ) { 76 StatementNode *ret = new StatementNode( StatementNode::Catch, 0, s ); 76 StatementNode *ret = new StatementNode( StatementNode::Catch, 0, s ); 77 77 ret->addDeclaration( d ); 78 78 ret->setCatchRest( catchRestP ); … … 101 101 StatementNode *StatementNode::add_label( const std::string *l ) { 102 102 if ( l != 0 ) { 103 labels.push_front( *l ); 103 labels.push_front( *l ); 104 104 delete l; 105 105 } // if … … 156 156 control->print( os, indent ); 157 157 os << endl; 158 } else 158 } else 159 159 os << string( indent, ' ' ) << "Null Statement" << endl; 160 160 break; … … 177 177 if ( block ) { 178 178 os << string( indent + ParseNode::indent_by, ' ' ) << "Branches of execution: " << endl; 179 block->printList( os, indent + 2 * ParseNode::indent_by ); 179 block->printList( os, indent + 2 * ParseNode::indent_by ); 180 180 } // if 181 181 if ( target ) { … … 222 222 branches.pop_front(); 223 223 } // if 224 return new IfStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), thenb, elseb );224 return new IfStmt( labs, notZeroExpr( get_control()->build() ), thenb, elseb ); 225 225 } 226 226 case While: 227 227 assert( branches.size() == 1 ); 228 return new WhileStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), branches.front() );228 return new WhileStmt( labs, notZeroExpr( get_control()->build() ), branches.front() ); 229 229 case Do: 230 230 assert( branches.size() == 1 ); 231 return new WhileStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), branches.front(), true );231 return new WhileStmt( labs, notZeroExpr( get_control()->build() ), branches.front(), true ); 232 232 case For: 233 233 { … … 244 244 Expression *cond = 0; 245 245 if ( ctl->get_condition() != 0 ) 246 cond = notZeroExpr( maybeBuild<Expression>(ctl->get_condition()) );246 cond = notZeroExpr( ctl->get_condition()->build() ); 247 247 248 248 Expression *incr = 0; 249 249 if ( ctl->get_change() != 0 ) 250 incr = maybeBuild<Expression>(ctl->get_change());250 incr = ctl->get_change()->build(); 251 251 252 252 return new ForStmt( labs, init, cond, incr, branches.front() ); 253 253 } 254 254 case Switch: 255 return new SwitchStmt( labs, maybeBuild<Expression>(get_control()), branches );255 return new SwitchStmt( labs, get_control()->build(), branches ); 256 256 case Choose: 257 return new ChooseStmt( labs, maybeBuild<Expression>(get_control()), branches );257 return new ChooseStmt( labs, get_control()->build(), branches ); 258 258 case Fallthru: 259 259 return new FallthruStmt( labs ); 260 case Case: 261 return new CaseStmt( labs, maybeBuild<Expression>(get_control()), branches );260 case Case: 261 return new CaseStmt( labs, get_control()->build(), branches ); 262 262 case Default: 263 263 return new CaseStmt( labs, 0, branches, true ); … … 266 266 if ( get_target() == "" ) { // computed goto 267 267 assert( get_control() != 0 ); 268 return new BranchStmt( labs, maybeBuild<Expression>(get_control()), BranchStmt::Goto );268 return new BranchStmt( labs, get_control()->build(), BranchStmt::Goto ); 269 269 } // if 270 270 … … 394 394 os << string( indent + ParseNode::indent_by, ' ' ) << "Goto Labels:" << endl; 395 395 os << string( indent + 2 * ParseNode::indent_by, ' ' ); 396 for ( std::list< Label>::const_iterator i = gotolabels.begin();; ) {396 for ( std::list<std::string>::const_iterator i = gotolabels.begin();; ) { 397 397 os << *i; 398 398 i++; … … 426 426 } 427 427 428 Statement *NullStmtNode::build() const { 428 Statement *NullStmtNode::build() const { 429 429 return new NullStmt; 430 430 } -
src/Parser/TypeData.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // TypeData.cc -- 7 // TypeData.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 15:12:51 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Apr 06 16:57:53201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:26:45 2016 13 13 // Update Count : 49 14 14 // … … 449 449 for ( std::list< TypeDecl* >::iterator i = outputList.begin(); i != outputList.end(); ++i ) { 450 450 if ( (*i)->get_kind() == TypeDecl::Any ) { 451 // add assertion parameters to `type' tyvars in reverse order452 // add dtor: void ^?{}(T *)453 FunctionType *dtorType = new FunctionType( Type::Qualifiers(), false );454 dtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) );455 (*i)->get_assertions().push_front( new FunctionDecl( "^?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, dtorType, 0, false, false ) );456 457 // add copy ctor: void ?{}(T *, T)458 FunctionType *copyCtorType = new FunctionType( Type::Qualifiers(), false );459 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) );460 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) );461 (*i)->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, copyCtorType, 0, false, false ) );462 463 // add default ctor: void ?{}(T *)464 FunctionType *ctorType = new FunctionType( Type::Qualifiers(), false );465 ctorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) );466 (*i)->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, ctorType, 0, false, false ) );467 468 // add assignment operator: T * ?=?(T *, T)469 451 FunctionType *assignType = new FunctionType( Type::Qualifiers(), false ); 470 452 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); … … 920 902 if ( cur->get_enumeratorValue() != NULL ) { 921 903 ObjectDecl *member = dynamic_cast<ObjectDecl *>(*members); 922 member->set_init( new SingleInit( maybeBuild< Expression >( cur->get_enumeratorValue() ) , std::list< Expression * >()) );904 member->set_init( new SingleInit( maybeBuild< Expression >( cur->get_enumeratorValue() ) ) ); 923 905 } // if 924 906 } // for -
src/Parser/lex.cc
rf80e0218 r1b5c81ed 1467 1467 * Created On : Sat Sep 22 08:58:10 2001 1468 1468 * Last Modified By : Peter A. Buhr 1469 * Last Modified On : Thu Jun 23 07:29:3020161470 * Update Count : 45 71469 * Last Modified On : Mon Mar 21 23:33:46 2016 1470 * Update Count : 450 1471 1471 */ 1472 1472 #line 20 "lex.ll" … … 1502 1502 1503 1503 void rm_underscore() { 1504 // Remove underscores in numeric constant by copying the non-underscore characters to the front of the string.1505 yyleng= 0;1504 // remove underscores in numeric constant 1505 int j = 0; 1506 1506 for ( int i = 0; yytext[i] != '\0'; i += 1 ) { 1507 1507 if ( yytext[i] != '_' ) { 1508 yytext[ yyleng] = yytext[i];1509 yyleng+= 1;1508 yytext[j] = yytext[i]; 1509 j += 1; 1510 1510 } // if 1511 1511 } // for 1512 yyleng = j; 1512 1513 yytext[yyleng] = '\0'; 1513 1514 } … … 1522 1523 // ' stop highlighting 1523 1524 // display/white-space characters 1524 // overloadable operators 1525 // op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@=" 1526 // operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over} 1527 1528 1529 1530 1531 #line 1532 "Parser/lex.cc" 1525 // operators 1526 1527 1528 1529 1530 #line 1531 "Parser/lex.cc" 1532 1531 1533 1532 #define INITIAL 0 … … 1721 1720 register int yy_act; 1722 1721 1723 #line 13 8"lex.ll"1722 #line 139 "lex.ll" 1724 1723 1725 1724 /* line directives */ 1726 #line 172 7"Parser/lex.cc"1725 #line 1726 "Parser/lex.cc" 1727 1726 1728 1727 if ( !(yy_init) ) … … 1821 1820 /* rule 1 can match eol */ 1822 1821 YY_RULE_SETUP 1823 #line 14 0"lex.ll"1822 #line 141 "lex.ll" 1824 1823 { 1825 1824 /* " stop highlighting */ … … 1848 1847 /* rule 2 can match eol */ 1849 1848 YY_RULE_SETUP 1850 #line 16 3"lex.ll"1849 #line 164 "lex.ll" 1851 1850 ; 1852 1851 YY_BREAK … … 1854 1853 case 3: 1855 1854 YY_RULE_SETUP 1856 #line 16 6"lex.ll"1855 #line 167 "lex.ll" 1857 1856 { BEGIN COMMENT; } 1858 1857 YY_BREAK … … 1860 1859 /* rule 4 can match eol */ 1861 1860 YY_RULE_SETUP 1862 #line 16 7"lex.ll"1861 #line 168 "lex.ll" 1863 1862 ; 1864 1863 YY_BREAK 1865 1864 case 5: 1866 1865 YY_RULE_SETUP 1867 #line 16 8"lex.ll"1866 #line 169 "lex.ll" 1868 1867 { BEGIN 0; } 1869 1868 YY_BREAK … … 1872 1871 /* rule 6 can match eol */ 1873 1872 YY_RULE_SETUP 1874 #line 17 1"lex.ll"1873 #line 172 "lex.ll" 1875 1874 ; 1876 1875 YY_BREAK … … 1878 1877 case 7: 1879 1878 YY_RULE_SETUP 1880 #line 174 "lex.ll"1881 { WHITE_RETURN(' '); }1882 YY_BREAK1883 case 8:1884 YY_RULE_SETUP1885 1879 #line 175 "lex.ll" 1886 1880 { WHITE_RETURN(' '); } 1887 1881 YY_BREAK 1882 case 8: 1883 YY_RULE_SETUP 1884 #line 176 "lex.ll" 1885 { WHITE_RETURN(' '); } 1886 YY_BREAK 1888 1887 case 9: 1889 1888 /* rule 9 can match eol */ 1890 1889 YY_RULE_SETUP 1891 #line 17 6"lex.ll"1890 #line 177 "lex.ll" 1892 1891 { NEWLINE_RETURN(); } 1893 1892 YY_BREAK … … 1895 1894 case 10: 1896 1895 YY_RULE_SETUP 1897 #line 1 79"lex.ll"1896 #line 180 "lex.ll" 1898 1897 { KEYWORD_RETURN(ALIGNAS); } // C11 1899 1898 YY_BREAK 1900 1899 case 11: 1901 1900 YY_RULE_SETUP 1902 #line 18 0"lex.ll"1901 #line 181 "lex.ll" 1903 1902 { KEYWORD_RETURN(ALIGNOF); } // C11 1904 1903 YY_BREAK 1905 1904 case 12: 1906 YY_RULE_SETUP1907 #line 181 "lex.ll"1908 { KEYWORD_RETURN(ALIGNOF); } // GCC1909 YY_BREAK1910 case 13:1911 1905 YY_RULE_SETUP 1912 1906 #line 182 "lex.ll" 1913 1907 { KEYWORD_RETURN(ALIGNOF); } // GCC 1914 1908 YY_BREAK 1909 case 13: 1910 YY_RULE_SETUP 1911 #line 183 "lex.ll" 1912 { KEYWORD_RETURN(ALIGNOF); } // GCC 1913 YY_BREAK 1915 1914 case 14: 1916 1915 YY_RULE_SETUP 1917 #line 18 3"lex.ll"1916 #line 184 "lex.ll" 1918 1917 { KEYWORD_RETURN(ASM); } 1919 1918 YY_BREAK 1920 1919 case 15: 1921 YY_RULE_SETUP1922 #line 184 "lex.ll"1923 { KEYWORD_RETURN(ASM); } // GCC1924 YY_BREAK1925 case 16:1926 1920 YY_RULE_SETUP 1927 1921 #line 185 "lex.ll" 1928 1922 { KEYWORD_RETURN(ASM); } // GCC 1929 1923 YY_BREAK 1924 case 16: 1925 YY_RULE_SETUP 1926 #line 186 "lex.ll" 1927 { KEYWORD_RETURN(ASM); } // GCC 1928 YY_BREAK 1930 1929 case 17: 1931 1930 YY_RULE_SETUP 1932 #line 18 6"lex.ll"1931 #line 187 "lex.ll" 1933 1932 { KEYWORD_RETURN(AT); } // CFA 1934 1933 YY_BREAK 1935 1934 case 18: 1936 1935 YY_RULE_SETUP 1937 #line 18 7"lex.ll"1936 #line 188 "lex.ll" 1938 1937 { KEYWORD_RETURN(ATOMIC); } // C11 1939 1938 YY_BREAK 1940 1939 case 19: 1941 YY_RULE_SETUP1942 #line 188 "lex.ll"1943 { KEYWORD_RETURN(ATTRIBUTE); } // GCC1944 YY_BREAK1945 case 20:1946 1940 YY_RULE_SETUP 1947 1941 #line 189 "lex.ll" 1948 1942 { KEYWORD_RETURN(ATTRIBUTE); } // GCC 1949 1943 YY_BREAK 1944 case 20: 1945 YY_RULE_SETUP 1946 #line 190 "lex.ll" 1947 { KEYWORD_RETURN(ATTRIBUTE); } // GCC 1948 YY_BREAK 1950 1949 case 21: 1951 1950 YY_RULE_SETUP 1952 #line 19 0"lex.ll"1951 #line 191 "lex.ll" 1953 1952 { KEYWORD_RETURN(AUTO); } 1954 1953 YY_BREAK 1955 1954 case 22: 1956 1955 YY_RULE_SETUP 1957 #line 19 1"lex.ll"1956 #line 192 "lex.ll" 1958 1957 { KEYWORD_RETURN(BOOL); } // C99 1959 1958 YY_BREAK 1960 1959 case 23: 1961 1960 YY_RULE_SETUP 1962 #line 19 2"lex.ll"1961 #line 193 "lex.ll" 1963 1962 { KEYWORD_RETURN(BREAK); } 1964 1963 YY_BREAK 1965 1964 case 24: 1966 1965 YY_RULE_SETUP 1967 #line 19 3"lex.ll"1966 #line 194 "lex.ll" 1968 1967 { KEYWORD_RETURN(CASE); } 1969 1968 YY_BREAK 1970 1969 case 25: 1971 1970 YY_RULE_SETUP 1972 #line 19 4"lex.ll"1971 #line 195 "lex.ll" 1973 1972 { KEYWORD_RETURN(CATCH); } // CFA 1974 1973 YY_BREAK 1975 1974 case 26: 1976 1975 YY_RULE_SETUP 1977 #line 19 5"lex.ll"1976 #line 196 "lex.ll" 1978 1977 { KEYWORD_RETURN(CATCHRESUME); } // CFA 1979 1978 YY_BREAK 1980 1979 case 27: 1981 1980 YY_RULE_SETUP 1982 #line 19 6"lex.ll"1981 #line 197 "lex.ll" 1983 1982 { KEYWORD_RETURN(CHAR); } 1984 1983 YY_BREAK 1985 1984 case 28: 1986 1985 YY_RULE_SETUP 1987 #line 19 7"lex.ll"1986 #line 198 "lex.ll" 1988 1987 { KEYWORD_RETURN(CHOOSE); } // CFA 1989 1988 YY_BREAK 1990 1989 case 29: 1991 1990 YY_RULE_SETUP 1992 #line 19 8"lex.ll"1991 #line 199 "lex.ll" 1993 1992 { KEYWORD_RETURN(COMPLEX); } // C99 1994 1993 YY_BREAK 1995 1994 case 30: 1996 YY_RULE_SETUP1997 #line 199 "lex.ll"1998 { KEYWORD_RETURN(COMPLEX); } // GCC1999 YY_BREAK2000 case 31:2001 1995 YY_RULE_SETUP 2002 1996 #line 200 "lex.ll" 2003 1997 { KEYWORD_RETURN(COMPLEX); } // GCC 2004 1998 YY_BREAK 1999 case 31: 2000 YY_RULE_SETUP 2001 #line 201 "lex.ll" 2002 { KEYWORD_RETURN(COMPLEX); } // GCC 2003 YY_BREAK 2005 2004 case 32: 2006 2005 YY_RULE_SETUP 2007 #line 20 1"lex.ll"2006 #line 202 "lex.ll" 2008 2007 { KEYWORD_RETURN(CONST); } 2009 2008 YY_BREAK 2010 2009 case 33: 2011 YY_RULE_SETUP2012 #line 202 "lex.ll"2013 { KEYWORD_RETURN(CONST); } // GCC2014 YY_BREAK2015 case 34:2016 2010 YY_RULE_SETUP 2017 2011 #line 203 "lex.ll" 2018 2012 { KEYWORD_RETURN(CONST); } // GCC 2019 2013 YY_BREAK 2014 case 34: 2015 YY_RULE_SETUP 2016 #line 204 "lex.ll" 2017 { KEYWORD_RETURN(CONST); } // GCC 2018 YY_BREAK 2020 2019 case 35: 2021 2020 YY_RULE_SETUP 2022 #line 20 4"lex.ll"2021 #line 205 "lex.ll" 2023 2022 { KEYWORD_RETURN(CONTINUE); } 2024 2023 YY_BREAK 2025 2024 case 36: 2026 2025 YY_RULE_SETUP 2027 #line 20 5"lex.ll"2026 #line 206 "lex.ll" 2028 2027 { KEYWORD_RETURN(DEFAULT); } 2029 2028 YY_BREAK 2030 2029 case 37: 2031 2030 YY_RULE_SETUP 2032 #line 20 6"lex.ll"2031 #line 207 "lex.ll" 2033 2032 { KEYWORD_RETURN(DISABLE); } // CFA 2034 2033 YY_BREAK 2035 2034 case 38: 2036 2035 YY_RULE_SETUP 2037 #line 20 7"lex.ll"2036 #line 208 "lex.ll" 2038 2037 { KEYWORD_RETURN(DO); } 2039 2038 YY_BREAK 2040 2039 case 39: 2041 2040 YY_RULE_SETUP 2042 #line 20 8"lex.ll"2041 #line 209 "lex.ll" 2043 2042 { KEYWORD_RETURN(DOUBLE); } 2044 2043 YY_BREAK 2045 2044 case 40: 2046 2045 YY_RULE_SETUP 2047 #line 2 09"lex.ll"2046 #line 210 "lex.ll" 2048 2047 { KEYWORD_RETURN(DTYPE); } // CFA 2049 2048 YY_BREAK 2050 2049 case 41: 2051 2050 YY_RULE_SETUP 2052 #line 21 0"lex.ll"2051 #line 211 "lex.ll" 2053 2052 { KEYWORD_RETURN(ELSE); } 2054 2053 YY_BREAK 2055 2054 case 42: 2056 2055 YY_RULE_SETUP 2057 #line 21 1"lex.ll"2056 #line 212 "lex.ll" 2058 2057 { KEYWORD_RETURN(ENABLE); } // CFA 2059 2058 YY_BREAK 2060 2059 case 43: 2061 2060 YY_RULE_SETUP 2062 #line 21 2"lex.ll"2061 #line 213 "lex.ll" 2063 2062 { KEYWORD_RETURN(ENUM); } 2064 2063 YY_BREAK 2065 2064 case 44: 2066 2065 YY_RULE_SETUP 2067 #line 21 3"lex.ll"2066 #line 214 "lex.ll" 2068 2067 { KEYWORD_RETURN(EXTENSION); } // GCC 2069 2068 YY_BREAK 2070 2069 case 45: 2071 2070 YY_RULE_SETUP 2072 #line 21 4"lex.ll"2071 #line 215 "lex.ll" 2073 2072 { KEYWORD_RETURN(EXTERN); } 2074 2073 YY_BREAK 2075 2074 case 46: 2076 2075 YY_RULE_SETUP 2077 #line 21 5"lex.ll"2076 #line 216 "lex.ll" 2078 2077 { KEYWORD_RETURN(FALLTHRU); } // CFA 2079 2078 YY_BREAK 2080 2079 case 47: 2081 2080 YY_RULE_SETUP 2082 #line 21 6"lex.ll"2081 #line 217 "lex.ll" 2083 2082 { KEYWORD_RETURN(FINALLY); } // CFA 2084 2083 YY_BREAK 2085 2084 case 48: 2086 2085 YY_RULE_SETUP 2087 #line 21 7"lex.ll"2086 #line 218 "lex.ll" 2088 2087 { KEYWORD_RETURN(FLOAT); } 2089 2088 YY_BREAK 2090 2089 case 49: 2091 2090 YY_RULE_SETUP 2092 #line 21 8"lex.ll"2091 #line 219 "lex.ll" 2093 2092 { KEYWORD_RETURN(FLOAT); } // GCC 2094 2093 YY_BREAK 2095 2094 case 50: 2096 2095 YY_RULE_SETUP 2097 #line 2 19"lex.ll"2096 #line 220 "lex.ll" 2098 2097 { KEYWORD_RETURN(FOR); } 2099 2098 YY_BREAK 2100 2099 case 51: 2101 2100 YY_RULE_SETUP 2102 #line 22 0"lex.ll"2101 #line 221 "lex.ll" 2103 2102 { KEYWORD_RETURN(FORALL); } // CFA 2104 2103 YY_BREAK 2105 2104 case 52: 2106 2105 YY_RULE_SETUP 2107 #line 22 1"lex.ll"2106 #line 222 "lex.ll" 2108 2107 { KEYWORD_RETURN(FORTRAN); } 2109 2108 YY_BREAK 2110 2109 case 53: 2111 2110 YY_RULE_SETUP 2112 #line 22 2"lex.ll"2111 #line 223 "lex.ll" 2113 2112 { KEYWORD_RETURN(FTYPE); } // CFA 2114 2113 YY_BREAK 2115 2114 case 54: 2116 2115 YY_RULE_SETUP 2117 #line 22 3"lex.ll"2116 #line 224 "lex.ll" 2118 2117 { KEYWORD_RETURN(GENERIC); } // C11 2119 2118 YY_BREAK 2120 2119 case 55: 2121 2120 YY_RULE_SETUP 2122 #line 22 4"lex.ll"2121 #line 225 "lex.ll" 2123 2122 { KEYWORD_RETURN(GOTO); } 2124 2123 YY_BREAK 2125 2124 case 56: 2126 2125 YY_RULE_SETUP 2127 #line 22 5"lex.ll"2126 #line 226 "lex.ll" 2128 2127 { KEYWORD_RETURN(IF); } 2129 2128 YY_BREAK 2130 2129 case 57: 2131 2130 YY_RULE_SETUP 2132 #line 22 6"lex.ll"2131 #line 227 "lex.ll" 2133 2132 { KEYWORD_RETURN(IMAGINARY); } // C99 2134 2133 YY_BREAK 2135 2134 case 58: 2136 YY_RULE_SETUP2137 #line 227 "lex.ll"2138 { KEYWORD_RETURN(IMAGINARY); } // GCC2139 YY_BREAK2140 case 59:2141 2135 YY_RULE_SETUP 2142 2136 #line 228 "lex.ll" 2143 2137 { KEYWORD_RETURN(IMAGINARY); } // GCC 2144 2138 YY_BREAK 2139 case 59: 2140 YY_RULE_SETUP 2141 #line 229 "lex.ll" 2142 { KEYWORD_RETURN(IMAGINARY); } // GCC 2143 YY_BREAK 2145 2144 case 60: 2146 2145 YY_RULE_SETUP 2147 #line 2 29"lex.ll"2146 #line 230 "lex.ll" 2148 2147 { KEYWORD_RETURN(INLINE); } // C99 2149 2148 YY_BREAK 2150 2149 case 61: 2151 YY_RULE_SETUP2152 #line 230 "lex.ll"2153 { KEYWORD_RETURN(INLINE); } // GCC2154 YY_BREAK2155 case 62:2156 2150 YY_RULE_SETUP 2157 2151 #line 231 "lex.ll" 2158 2152 { KEYWORD_RETURN(INLINE); } // GCC 2159 2153 YY_BREAK 2154 case 62: 2155 YY_RULE_SETUP 2156 #line 232 "lex.ll" 2157 { KEYWORD_RETURN(INLINE); } // GCC 2158 YY_BREAK 2160 2159 case 63: 2161 2160 YY_RULE_SETUP 2162 #line 23 2"lex.ll"2161 #line 233 "lex.ll" 2163 2162 { KEYWORD_RETURN(INT); } 2164 2163 YY_BREAK 2165 2164 case 64: 2166 2165 YY_RULE_SETUP 2167 #line 23 3"lex.ll"2166 #line 234 "lex.ll" 2168 2167 { KEYWORD_RETURN(INT); } // GCC 2169 2168 YY_BREAK 2170 2169 case 65: 2171 2170 YY_RULE_SETUP 2172 #line 23 4"lex.ll"2171 #line 235 "lex.ll" 2173 2172 { KEYWORD_RETURN(LABEL); } // GCC 2174 2173 YY_BREAK 2175 2174 case 66: 2176 2175 YY_RULE_SETUP 2177 #line 23 5"lex.ll"2176 #line 236 "lex.ll" 2178 2177 { KEYWORD_RETURN(LONG); } 2179 2178 YY_BREAK 2180 2179 case 67: 2181 2180 YY_RULE_SETUP 2182 #line 23 6"lex.ll"2181 #line 237 "lex.ll" 2183 2182 { KEYWORD_RETURN(LVALUE); } // CFA 2184 2183 YY_BREAK 2185 2184 case 68: 2186 2185 YY_RULE_SETUP 2187 #line 23 7"lex.ll"2186 #line 238 "lex.ll" 2188 2187 { KEYWORD_RETURN(NORETURN); } // C11 2189 2188 YY_BREAK 2190 2189 case 69: 2191 2190 YY_RULE_SETUP 2192 #line 23 8"lex.ll"2191 #line 239 "lex.ll" 2193 2192 { KEYWORD_RETURN(OFFSETOF); } // GCC 2194 2193 YY_BREAK 2195 2194 case 70: 2196 2195 YY_RULE_SETUP 2197 #line 2 39"lex.ll"2196 #line 240 "lex.ll" 2198 2197 { KEYWORD_RETURN(OTYPE); } // CFA 2199 2198 YY_BREAK 2200 2199 case 71: 2201 2200 YY_RULE_SETUP 2202 #line 24 0"lex.ll"2201 #line 241 "lex.ll" 2203 2202 { KEYWORD_RETURN(REGISTER); } 2204 2203 YY_BREAK 2205 2204 case 72: 2206 2205 YY_RULE_SETUP 2207 #line 24 1"lex.ll"2206 #line 242 "lex.ll" 2208 2207 { KEYWORD_RETURN(RESTRICT); } // C99 2209 2208 YY_BREAK 2210 2209 case 73: 2211 YY_RULE_SETUP2212 #line 242 "lex.ll"2213 { KEYWORD_RETURN(RESTRICT); } // GCC2214 YY_BREAK2215 case 74:2216 2210 YY_RULE_SETUP 2217 2211 #line 243 "lex.ll" 2218 2212 { KEYWORD_RETURN(RESTRICT); } // GCC 2219 2213 YY_BREAK 2214 case 74: 2215 YY_RULE_SETUP 2216 #line 244 "lex.ll" 2217 { KEYWORD_RETURN(RESTRICT); } // GCC 2218 YY_BREAK 2220 2219 case 75: 2221 2220 YY_RULE_SETUP 2222 #line 24 4"lex.ll"2221 #line 245 "lex.ll" 2223 2222 { KEYWORD_RETURN(RETURN); } 2224 2223 YY_BREAK 2225 2224 case 76: 2226 2225 YY_RULE_SETUP 2227 #line 24 5"lex.ll"2226 #line 246 "lex.ll" 2228 2227 { KEYWORD_RETURN(SHORT); } 2229 2228 YY_BREAK 2230 2229 case 77: 2231 2230 YY_RULE_SETUP 2232 #line 24 6"lex.ll"2231 #line 247 "lex.ll" 2233 2232 { KEYWORD_RETURN(SIGNED); } 2234 2233 YY_BREAK 2235 2234 case 78: 2236 YY_RULE_SETUP2237 #line 247 "lex.ll"2238 { KEYWORD_RETURN(SIGNED); } // GCC2239 YY_BREAK2240 case 79:2241 2235 YY_RULE_SETUP 2242 2236 #line 248 "lex.ll" 2243 2237 { KEYWORD_RETURN(SIGNED); } // GCC 2244 2238 YY_BREAK 2239 case 79: 2240 YY_RULE_SETUP 2241 #line 249 "lex.ll" 2242 { KEYWORD_RETURN(SIGNED); } // GCC 2243 YY_BREAK 2245 2244 case 80: 2246 2245 YY_RULE_SETUP 2247 #line 2 49"lex.ll"2246 #line 250 "lex.ll" 2248 2247 { KEYWORD_RETURN(SIZEOF); } 2249 2248 YY_BREAK 2250 2249 case 81: 2251 2250 YY_RULE_SETUP 2252 #line 25 0"lex.ll"2251 #line 251 "lex.ll" 2253 2252 { KEYWORD_RETURN(STATIC); } 2254 2253 YY_BREAK 2255 2254 case 82: 2256 2255 YY_RULE_SETUP 2257 #line 25 1"lex.ll"2256 #line 252 "lex.ll" 2258 2257 { KEYWORD_RETURN(STATICASSERT); } // C11 2259 2258 YY_BREAK 2260 2259 case 83: 2261 2260 YY_RULE_SETUP 2262 #line 25 2"lex.ll"2261 #line 253 "lex.ll" 2263 2262 { KEYWORD_RETURN(STRUCT); } 2264 2263 YY_BREAK 2265 2264 case 84: 2266 2265 YY_RULE_SETUP 2267 #line 25 3"lex.ll"2266 #line 254 "lex.ll" 2268 2267 { KEYWORD_RETURN(SWITCH); } 2269 2268 YY_BREAK 2270 2269 case 85: 2271 2270 YY_RULE_SETUP 2272 #line 25 4"lex.ll"2271 #line 255 "lex.ll" 2273 2272 { KEYWORD_RETURN(THREADLOCAL); } // C11 2274 2273 YY_BREAK 2275 2274 case 86: 2276 2275 YY_RULE_SETUP 2277 #line 25 5"lex.ll"2276 #line 256 "lex.ll" 2278 2277 { KEYWORD_RETURN(THROW); } // CFA 2279 2278 YY_BREAK 2280 2279 case 87: 2281 2280 YY_RULE_SETUP 2282 #line 25 6"lex.ll"2281 #line 257 "lex.ll" 2283 2282 { KEYWORD_RETURN(THROWRESUME); } // CFA 2284 2283 YY_BREAK 2285 2284 case 88: 2286 2285 YY_RULE_SETUP 2287 #line 25 7"lex.ll"2286 #line 258 "lex.ll" 2288 2287 { KEYWORD_RETURN(TRAIT); } // CFA 2289 2288 YY_BREAK 2290 2289 case 89: 2291 2290 YY_RULE_SETUP 2292 #line 25 8"lex.ll"2291 #line 259 "lex.ll" 2293 2292 { KEYWORD_RETURN(TRY); } // CFA 2294 2293 YY_BREAK 2295 2294 case 90: 2296 2295 YY_RULE_SETUP 2297 #line 2 59"lex.ll"2296 #line 260 "lex.ll" 2298 2297 { KEYWORD_RETURN(TYPEDEF); } 2299 2298 YY_BREAK 2300 2299 case 91: 2301 YY_RULE_SETUP2302 #line 260 "lex.ll"2303 { KEYWORD_RETURN(TYPEOF); } // GCC2304 YY_BREAK2305 case 92:2306 2300 YY_RULE_SETUP 2307 2301 #line 261 "lex.ll" 2308 2302 { KEYWORD_RETURN(TYPEOF); } // GCC 2309 2303 YY_BREAK 2310 case 9 3:2304 case 92: 2311 2305 YY_RULE_SETUP 2312 2306 #line 262 "lex.ll" 2313 2307 { KEYWORD_RETURN(TYPEOF); } // GCC 2314 2308 YY_BREAK 2309 case 93: 2310 YY_RULE_SETUP 2311 #line 263 "lex.ll" 2312 { KEYWORD_RETURN(TYPEOF); } // GCC 2313 YY_BREAK 2315 2314 case 94: 2316 2315 YY_RULE_SETUP 2317 #line 26 3"lex.ll"2316 #line 264 "lex.ll" 2318 2317 { KEYWORD_RETURN(UNION); } 2319 2318 YY_BREAK 2320 2319 case 95: 2321 2320 YY_RULE_SETUP 2322 #line 26 4"lex.ll"2321 #line 265 "lex.ll" 2323 2322 { KEYWORD_RETURN(UNSIGNED); } 2324 2323 YY_BREAK 2325 2324 case 96: 2326 2325 YY_RULE_SETUP 2327 #line 26 5"lex.ll"2326 #line 266 "lex.ll" 2328 2327 { KEYWORD_RETURN(VALIST); } // GCC 2329 2328 YY_BREAK 2330 2329 case 97: 2331 2330 YY_RULE_SETUP 2332 #line 26 6"lex.ll"2331 #line 267 "lex.ll" 2333 2332 { KEYWORD_RETURN(VOID); } 2334 2333 YY_BREAK 2335 2334 case 98: 2336 2335 YY_RULE_SETUP 2337 #line 26 7"lex.ll"2336 #line 268 "lex.ll" 2338 2337 { KEYWORD_RETURN(VOLATILE); } 2339 2338 YY_BREAK 2340 2339 case 99: 2341 YY_RULE_SETUP2342 #line 268 "lex.ll"2343 { KEYWORD_RETURN(VOLATILE); } // GCC2344 YY_BREAK2345 case 100:2346 2340 YY_RULE_SETUP 2347 2341 #line 269 "lex.ll" 2348 2342 { KEYWORD_RETURN(VOLATILE); } // GCC 2349 2343 YY_BREAK 2344 case 100: 2345 YY_RULE_SETUP 2346 #line 270 "lex.ll" 2347 { KEYWORD_RETURN(VOLATILE); } // GCC 2348 YY_BREAK 2350 2349 case 101: 2351 2350 YY_RULE_SETUP 2352 #line 27 0"lex.ll"2351 #line 271 "lex.ll" 2353 2352 { KEYWORD_RETURN(WHILE); } 2354 2353 YY_BREAK … … 2356 2355 case 102: 2357 2356 YY_RULE_SETUP 2358 #line 27 3"lex.ll"2357 #line 274 "lex.ll" 2359 2358 { IDENTIFIER_RETURN(); } 2360 2359 YY_BREAK 2361 2360 case 103: 2362 2361 YY_RULE_SETUP 2363 #line 27 4"lex.ll"2362 #line 275 "lex.ll" 2364 2363 { ATTRIBUTE_RETURN(); } 2365 2364 YY_BREAK 2366 2365 case 104: 2367 2366 YY_RULE_SETUP 2368 #line 27 5"lex.ll"2367 #line 276 "lex.ll" 2369 2368 { BEGIN BKQUOTE; } 2370 2369 YY_BREAK 2371 2370 case 105: 2372 2371 YY_RULE_SETUP 2373 #line 27 6"lex.ll"2372 #line 277 "lex.ll" 2374 2373 { IDENTIFIER_RETURN(); } 2375 2374 YY_BREAK 2376 2375 case 106: 2377 2376 YY_RULE_SETUP 2378 #line 27 7"lex.ll"2377 #line 278 "lex.ll" 2379 2378 { BEGIN 0; } 2380 2379 YY_BREAK … … 2382 2381 case 107: 2383 2382 YY_RULE_SETUP 2384 #line 28 0"lex.ll"2383 #line 281 "lex.ll" 2385 2384 { NUMERIC_RETURN(ZERO); } // CFA 2386 2385 YY_BREAK 2387 2386 case 108: 2388 2387 YY_RULE_SETUP 2389 #line 28 1"lex.ll"2388 #line 282 "lex.ll" 2390 2389 { NUMERIC_RETURN(ONE); } // CFA 2391 2390 YY_BREAK 2392 2391 case 109: 2393 YY_RULE_SETUP2394 #line 282 "lex.ll"2395 { NUMERIC_RETURN(INTEGERconstant); }2396 YY_BREAK2397 case 110:2398 2392 YY_RULE_SETUP 2399 2393 #line 283 "lex.ll" 2400 2394 { NUMERIC_RETURN(INTEGERconstant); } 2401 2395 YY_BREAK 2402 case 11 1:2396 case 110: 2403 2397 YY_RULE_SETUP 2404 2398 #line 284 "lex.ll" 2405 2399 { NUMERIC_RETURN(INTEGERconstant); } 2406 2400 YY_BREAK 2401 case 111: 2402 YY_RULE_SETUP 2403 #line 285 "lex.ll" 2404 { NUMERIC_RETURN(INTEGERconstant); } 2405 YY_BREAK 2407 2406 case 112: 2408 YY_RULE_SETUP2409 #line 285 "lex.ll"2410 { NUMERIC_RETURN(FLOATINGconstant); }2411 YY_BREAK2412 case 113:2413 2407 YY_RULE_SETUP 2414 2408 #line 286 "lex.ll" 2415 2409 { NUMERIC_RETURN(FLOATINGconstant); } 2416 2410 YY_BREAK 2411 case 113: 2412 YY_RULE_SETUP 2413 #line 287 "lex.ll" 2414 { NUMERIC_RETURN(FLOATINGconstant); } 2415 YY_BREAK 2417 2416 /* character constant, allows empty value */ 2418 2417 case 114: 2419 2418 YY_RULE_SETUP 2420 #line 2 89"lex.ll"2419 #line 290 "lex.ll" 2421 2420 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 2422 2421 YY_BREAK 2423 2422 case 115: 2424 2423 YY_RULE_SETUP 2425 #line 29 0"lex.ll"2424 #line 291 "lex.ll" 2426 2425 { *strtext += std::string( yytext ); } 2427 2426 YY_BREAK … … 2429 2428 /* rule 116 can match eol */ 2430 2429 YY_RULE_SETUP 2431 #line 29 1"lex.ll"2430 #line 292 "lex.ll" 2432 2431 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); } 2433 2432 YY_BREAK … … 2436 2435 case 117: 2437 2436 YY_RULE_SETUP 2438 #line 29 5"lex.ll"2437 #line 296 "lex.ll" 2439 2438 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 2440 2439 YY_BREAK 2441 2440 case 118: 2442 2441 YY_RULE_SETUP 2443 #line 29 6"lex.ll"2442 #line 297 "lex.ll" 2444 2443 { *strtext += std::string( yytext ); } 2445 2444 YY_BREAK … … 2447 2446 /* rule 119 can match eol */ 2448 2447 YY_RULE_SETUP 2449 #line 29 7"lex.ll"2448 #line 298 "lex.ll" 2450 2449 { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); } 2451 2450 YY_BREAK … … 2454 2453 case 120: 2455 2454 YY_RULE_SETUP 2456 #line 30 1"lex.ll"2455 #line 302 "lex.ll" 2457 2456 { rm_underscore(); *strtext += std::string( yytext ); } 2458 2457 YY_BREAK … … 2460 2459 /* rule 121 can match eol */ 2461 2460 YY_RULE_SETUP 2462 #line 30 2"lex.ll"2461 #line 303 "lex.ll" 2463 2462 {} // continuation (ALSO HANDLED BY CPP) 2464 2463 YY_BREAK 2465 2464 case 122: 2466 2465 YY_RULE_SETUP 2467 #line 30 3"lex.ll"2466 #line 304 "lex.ll" 2468 2467 { *strtext += std::string( yytext ); } // unknown escape character 2469 2468 YY_BREAK … … 2471 2470 case 123: 2472 2471 YY_RULE_SETUP 2473 #line 306 "lex.ll"2474 { ASCIIOP_RETURN(); }2475 YY_BREAK2476 case 124:2477 YY_RULE_SETUP2478 2472 #line 307 "lex.ll" 2479 2473 { ASCIIOP_RETURN(); } 2480 2474 YY_BREAK 2481 case 12 5:2475 case 124: 2482 2476 YY_RULE_SETUP 2483 2477 #line 308 "lex.ll" 2484 2478 { ASCIIOP_RETURN(); } 2485 2479 YY_BREAK 2486 case 12 6:2480 case 125: 2487 2481 YY_RULE_SETUP 2488 2482 #line 309 "lex.ll" 2489 2483 { ASCIIOP_RETURN(); } 2490 2484 YY_BREAK 2491 case 12 7:2485 case 126: 2492 2486 YY_RULE_SETUP 2493 2487 #line 310 "lex.ll" 2494 2488 { ASCIIOP_RETURN(); } 2495 2489 YY_BREAK 2496 case 12 8:2490 case 127: 2497 2491 YY_RULE_SETUP 2498 2492 #line 311 "lex.ll" 2499 2493 { ASCIIOP_RETURN(); } 2500 2494 YY_BREAK 2495 case 128: 2496 YY_RULE_SETUP 2497 #line 312 "lex.ll" 2498 { ASCIIOP_RETURN(); } 2499 YY_BREAK 2501 2500 case 129: 2502 2501 YY_RULE_SETUP 2503 #line 31 2"lex.ll"2502 #line 313 "lex.ll" 2504 2503 { ASCIIOP_RETURN(); } // also operator 2505 2504 YY_BREAK 2506 2505 case 130: 2507 YY_RULE_SETUP2508 #line 313 "lex.ll"2509 { ASCIIOP_RETURN(); }2510 YY_BREAK2511 case 131:2512 2506 YY_RULE_SETUP 2513 2507 #line 314 "lex.ll" 2514 2508 { ASCIIOP_RETURN(); } 2515 2509 YY_BREAK 2510 case 131: 2511 YY_RULE_SETUP 2512 #line 315 "lex.ll" 2513 { ASCIIOP_RETURN(); } 2514 YY_BREAK 2516 2515 case 132: 2517 2516 YY_RULE_SETUP 2518 #line 31 5"lex.ll"2517 #line 316 "lex.ll" 2519 2518 { ASCIIOP_RETURN(); } // also operator 2520 2519 YY_BREAK 2521 2520 case 133: 2522 2521 YY_RULE_SETUP 2523 #line 31 6"lex.ll"2522 #line 317 "lex.ll" 2524 2523 { NAMEDOP_RETURN(ELLIPSIS); } 2525 2524 YY_BREAK … … 2527 2526 case 134: 2528 2527 YY_RULE_SETUP 2529 #line 3 19"lex.ll"2528 #line 320 "lex.ll" 2530 2529 { RETURN_VAL('['); } 2531 2530 YY_BREAK 2532 2531 case 135: 2533 2532 YY_RULE_SETUP 2534 #line 32 0"lex.ll"2533 #line 321 "lex.ll" 2535 2534 { RETURN_VAL(']'); } 2536 2535 YY_BREAK 2537 2536 case 136: 2538 2537 YY_RULE_SETUP 2539 #line 32 1"lex.ll"2538 #line 322 "lex.ll" 2540 2539 { RETURN_VAL('{'); } 2541 2540 YY_BREAK 2542 2541 case 137: 2543 2542 YY_RULE_SETUP 2544 #line 32 2"lex.ll"2543 #line 323 "lex.ll" 2545 2544 { RETURN_VAL('}'); } 2546 2545 YY_BREAK … … 2548 2547 case 138: 2549 2548 YY_RULE_SETUP 2550 #line 325 "lex.ll"2551 { ASCIIOP_RETURN(); }2552 YY_BREAK2553 case 139:2554 YY_RULE_SETUP2555 2549 #line 326 "lex.ll" 2556 2550 { ASCIIOP_RETURN(); } 2557 2551 YY_BREAK 2558 case 1 40:2552 case 139: 2559 2553 YY_RULE_SETUP 2560 2554 #line 327 "lex.ll" 2561 2555 { ASCIIOP_RETURN(); } 2562 2556 YY_BREAK 2563 case 14 1:2557 case 140: 2564 2558 YY_RULE_SETUP 2565 2559 #line 328 "lex.ll" 2566 2560 { ASCIIOP_RETURN(); } 2567 2561 YY_BREAK 2568 case 14 2:2562 case 141: 2569 2563 YY_RULE_SETUP 2570 2564 #line 329 "lex.ll" 2571 2565 { ASCIIOP_RETURN(); } 2572 2566 YY_BREAK 2573 case 14 3:2567 case 142: 2574 2568 YY_RULE_SETUP 2575 2569 #line 330 "lex.ll" 2576 2570 { ASCIIOP_RETURN(); } 2577 2571 YY_BREAK 2578 case 14 4:2572 case 143: 2579 2573 YY_RULE_SETUP 2580 2574 #line 331 "lex.ll" 2581 2575 { ASCIIOP_RETURN(); } 2582 2576 YY_BREAK 2583 case 14 5:2577 case 144: 2584 2578 YY_RULE_SETUP 2585 2579 #line 332 "lex.ll" 2586 2580 { ASCIIOP_RETURN(); } 2587 2581 YY_BREAK 2588 case 14 6:2582 case 145: 2589 2583 YY_RULE_SETUP 2590 2584 #line 333 "lex.ll" 2591 2585 { ASCIIOP_RETURN(); } 2592 2586 YY_BREAK 2593 case 14 7:2587 case 146: 2594 2588 YY_RULE_SETUP 2595 2589 #line 334 "lex.ll" 2596 2590 { ASCIIOP_RETURN(); } 2597 2591 YY_BREAK 2598 case 14 8:2592 case 147: 2599 2593 YY_RULE_SETUP 2600 2594 #line 335 "lex.ll" 2601 2595 { ASCIIOP_RETURN(); } 2602 2596 YY_BREAK 2603 case 14 9:2597 case 148: 2604 2598 YY_RULE_SETUP 2605 2599 #line 336 "lex.ll" 2606 2600 { ASCIIOP_RETURN(); } 2607 2601 YY_BREAK 2608 case 1 50:2602 case 149: 2609 2603 YY_RULE_SETUP 2610 2604 #line 337 "lex.ll" 2611 2605 { ASCIIOP_RETURN(); } 2612 2606 YY_BREAK 2613 case 15 1:2607 case 150: 2614 2608 YY_RULE_SETUP 2615 2609 #line 338 "lex.ll" 2616 2610 { ASCIIOP_RETURN(); } 2617 2611 YY_BREAK 2612 case 151: 2613 YY_RULE_SETUP 2614 #line 339 "lex.ll" 2615 { ASCIIOP_RETURN(); } 2616 YY_BREAK 2618 2617 case 152: 2619 2618 YY_RULE_SETUP 2620 #line 34 0"lex.ll"2619 #line 341 "lex.ll" 2621 2620 { NAMEDOP_RETURN(ICR); } 2622 2621 YY_BREAK 2623 2622 case 153: 2624 2623 YY_RULE_SETUP 2625 #line 34 1"lex.ll"2624 #line 342 "lex.ll" 2626 2625 { NAMEDOP_RETURN(DECR); } 2627 2626 YY_BREAK 2628 2627 case 154: 2629 2628 YY_RULE_SETUP 2630 #line 34 2"lex.ll"2629 #line 343 "lex.ll" 2631 2630 { NAMEDOP_RETURN(EQ); } 2632 2631 YY_BREAK 2633 2632 case 155: 2634 2633 YY_RULE_SETUP 2635 #line 34 3"lex.ll"2634 #line 344 "lex.ll" 2636 2635 { NAMEDOP_RETURN(NE); } 2637 2636 YY_BREAK 2638 2637 case 156: 2639 2638 YY_RULE_SETUP 2640 #line 34 4"lex.ll"2639 #line 345 "lex.ll" 2641 2640 { NAMEDOP_RETURN(LS); } 2642 2641 YY_BREAK 2643 2642 case 157: 2644 2643 YY_RULE_SETUP 2645 #line 34 5"lex.ll"2644 #line 346 "lex.ll" 2646 2645 { NAMEDOP_RETURN(RS); } 2647 2646 YY_BREAK 2648 2647 case 158: 2649 2648 YY_RULE_SETUP 2650 #line 34 6"lex.ll"2649 #line 347 "lex.ll" 2651 2650 { NAMEDOP_RETURN(LE); } 2652 2651 YY_BREAK 2653 2652 case 159: 2654 2653 YY_RULE_SETUP 2655 #line 34 7"lex.ll"2654 #line 348 "lex.ll" 2656 2655 { NAMEDOP_RETURN(GE); } 2657 2656 YY_BREAK 2658 2657 case 160: 2659 2658 YY_RULE_SETUP 2660 #line 34 8"lex.ll"2659 #line 349 "lex.ll" 2661 2660 { NAMEDOP_RETURN(ANDAND); } 2662 2661 YY_BREAK 2663 2662 case 161: 2664 2663 YY_RULE_SETUP 2665 #line 3 49"lex.ll"2664 #line 350 "lex.ll" 2666 2665 { NAMEDOP_RETURN(OROR); } 2667 2666 YY_BREAK 2668 2667 case 162: 2669 2668 YY_RULE_SETUP 2670 #line 35 0"lex.ll"2669 #line 351 "lex.ll" 2671 2670 { NAMEDOP_RETURN(ARROW); } 2672 2671 YY_BREAK 2673 2672 case 163: 2674 2673 YY_RULE_SETUP 2675 #line 35 1"lex.ll"2674 #line 352 "lex.ll" 2676 2675 { NAMEDOP_RETURN(PLUSassign); } 2677 2676 YY_BREAK 2678 2677 case 164: 2679 2678 YY_RULE_SETUP 2680 #line 35 2"lex.ll"2679 #line 353 "lex.ll" 2681 2680 { NAMEDOP_RETURN(MINUSassign); } 2682 2681 YY_BREAK 2683 2682 case 165: 2684 2683 YY_RULE_SETUP 2685 #line 35 3"lex.ll"2684 #line 354 "lex.ll" 2686 2685 { NAMEDOP_RETURN(MULTassign); } 2687 2686 YY_BREAK 2688 2687 case 166: 2689 2688 YY_RULE_SETUP 2690 #line 35 4"lex.ll"2689 #line 355 "lex.ll" 2691 2690 { NAMEDOP_RETURN(DIVassign); } 2692 2691 YY_BREAK 2693 2692 case 167: 2694 2693 YY_RULE_SETUP 2695 #line 35 5"lex.ll"2694 #line 356 "lex.ll" 2696 2695 { NAMEDOP_RETURN(MODassign); } 2697 2696 YY_BREAK 2698 2697 case 168: 2699 2698 YY_RULE_SETUP 2700 #line 35 6"lex.ll"2699 #line 357 "lex.ll" 2701 2700 { NAMEDOP_RETURN(ANDassign); } 2702 2701 YY_BREAK 2703 2702 case 169: 2704 2703 YY_RULE_SETUP 2705 #line 35 7"lex.ll"2704 #line 358 "lex.ll" 2706 2705 { NAMEDOP_RETURN(ORassign); } 2707 2706 YY_BREAK 2708 2707 case 170: 2709 2708 YY_RULE_SETUP 2710 #line 35 8"lex.ll"2709 #line 359 "lex.ll" 2711 2710 { NAMEDOP_RETURN(ERassign); } 2712 2711 YY_BREAK 2713 2712 case 171: 2714 2713 YY_RULE_SETUP 2715 #line 3 59"lex.ll"2714 #line 360 "lex.ll" 2716 2715 { NAMEDOP_RETURN(LSassign); } 2717 2716 YY_BREAK 2718 2717 case 172: 2719 2718 YY_RULE_SETUP 2720 #line 36 0"lex.ll"2719 #line 361 "lex.ll" 2721 2720 { NAMEDOP_RETURN(RSassign); } 2722 2721 YY_BREAK 2723 2722 case 173: 2724 2723 YY_RULE_SETUP 2725 #line 36 2"lex.ll"2724 #line 363 "lex.ll" 2726 2725 { NAMEDOP_RETURN(ATassign); } 2727 2726 YY_BREAK … … 2729 2728 case 174: 2730 2729 YY_RULE_SETUP 2731 #line 36 5"lex.ll"2730 #line 366 "lex.ll" 2732 2731 { IDENTIFIER_RETURN(); } // unary 2733 2732 YY_BREAK 2734 2733 case 175: 2735 YY_RULE_SETUP2736 #line 366 "lex.ll"2737 { IDENTIFIER_RETURN(); }2738 YY_BREAK2739 case 176:2740 2734 YY_RULE_SETUP 2741 2735 #line 367 "lex.ll" 2742 2736 { IDENTIFIER_RETURN(); } 2743 2737 YY_BREAK 2738 case 176: 2739 YY_RULE_SETUP 2740 #line 368 "lex.ll" 2741 { IDENTIFIER_RETURN(); } 2742 YY_BREAK 2744 2743 case 177: 2745 2744 YY_RULE_SETUP 2746 #line 36 8"lex.ll"2745 #line 369 "lex.ll" 2747 2746 { IDENTIFIER_RETURN(); } // binary 2748 2747 YY_BREAK … … 2775 2774 case 178: 2776 2775 YY_RULE_SETUP 2777 #line 39 5"lex.ll"2776 #line 396 "lex.ll" 2778 2777 { 2779 2778 // 1 or 2 character unary operator ? … … 2790 2789 case 179: 2791 2790 YY_RULE_SETUP 2792 #line 40 7"lex.ll"2791 #line 408 "lex.ll" 2793 2792 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); } 2794 2793 YY_BREAK 2795 2794 case 180: 2796 2795 YY_RULE_SETUP 2797 #line 4 09"lex.ll"2796 #line 410 "lex.ll" 2798 2797 ECHO; 2799 2798 YY_BREAK 2800 #line 280 1"Parser/lex.cc"2799 #line 2800 "Parser/lex.cc" 2801 2800 case YY_STATE_EOF(INITIAL): 2802 2801 case YY_STATE_EOF(COMMENT): … … 3773 3772 #define YYTABLES_NAME "yytables" 3774 3773 3775 #line 4 09"lex.ll"3774 #line 410 "lex.ll" 3776 3775 3777 3776 -
src/Parser/lex.ll
rf80e0218 r1b5c81ed 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Thu Jun 23 07:29:30201613 * Update Count : 45 712 * Last Modified On : Mon Mar 21 23:33:46 2016 13 * Update Count : 450 14 14 */ 15 15 … … 49 49 50 50 void rm_underscore() { 51 // Remove underscores in numeric constant by copying the non-underscore characters to the front of the string.52 yyleng= 0;51 // remove underscores in numeric constant 52 int j = 0; 53 53 for ( int i = 0; yytext[i] != '\0'; i += 1 ) { 54 54 if ( yytext[i] != '_' ) { 55 yytext[ yyleng] = yytext[i];56 yyleng+= 1;55 yytext[j] = yytext[i]; 56 j += 1; 57 57 } // if 58 58 } // for 59 yyleng = j; 59 60 yytext[yyleng] = '\0'; 60 61 } … … 120 121 h_white [ ]|{h_tab} 121 122 122 // o verloadable operators123 // operators 123 124 op_unary_only "~"|"!" 124 125 op_unary_binary "+"|"-"|"*" … … 128 129 op_binary_only "/"|"%"|"^"|"&"|"|"|"<"|">"|"="|"=="|"!="|"<<"|">>"|"<="|">="|"+="|"-="|"*="|"/="|"%="|"&="|"|="|"^="|"<<="|">>=" 129 130 op_binary_over {op_unary_binary}|{op_binary_only} 130 // op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@="131 //operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over}131 op_binary_not_over "?"|"->"|"&&"|"||" 132 operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over} 132 133 133 134 %x COMMENT … … 273 274 {identifier} { IDENTIFIER_RETURN(); } 274 275 {attr_identifier} { ATTRIBUTE_RETURN(); } 275 "`" { BEGIN BKQUOTE; }276 "`" { BEGIN BKQUOTE; } 276 277 <BKQUOTE>{identifier} { IDENTIFIER_RETURN(); } 277 278 <BKQUOTE>"`" { BEGIN 0; } -
src/Parser/parser.cc
rf80e0218 r1b5c81ed 67 67 68 68 /* Line 268 of yacc.c */ 69 #line 4 2"parser.yy"69 #line 44 "parser.yy" 70 70 71 71 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 342 342 343 343 /* Line 293 of yacc.c */ 344 #line 11 0"parser.yy"344 #line 112 "parser.yy" 345 345 346 346 Token tok; … … 588 588 589 589 /* YYFINAL -- State number of the termination state. */ 590 #define YYFINAL 2 52590 #define YYFINAL 249 591 591 /* YYLAST -- Last index in YYTABLE. */ 592 #define YYLAST 1 2094592 #define YYLAST 11449 593 593 594 594 /* YYNTOKENS -- Number of terminals. */ 595 595 #define YYNTOKENS 133 596 596 /* YYNNTS -- Number of nonterminals. */ 597 #define YYNNTS 24 1597 #define YYNNTS 240 598 598 /* YYNRULES -- Number of rules. */ 599 #define YYNRULES 75 5599 #define YYNRULES 754 600 600 /* YYNRULES -- Number of states. */ 601 #define YYNSTATES 158 0601 #define YYNSTATES 1581 602 602 603 603 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 614 614 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 615 615 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 616 2, 2, 2, 1 22, 2, 2, 2, 125, 119, 2,617 109, 110, 11 8, 120, 116, 121, 113, 124, 2, 2,616 2, 2, 2, 118, 2, 2, 2, 125, 120, 2, 617 109, 110, 119, 121, 116, 122, 113, 124, 2, 2, 618 618 2, 2, 2, 2, 2, 2, 2, 2, 117, 132, 619 619 126, 131, 127, 130, 2, 2, 2, 2, 2, 2, … … 660 660 87, 90, 98, 103, 105, 109, 110, 112, 116, 124, 661 661 134, 136, 140, 142, 146, 154, 158, 166, 168, 170, 662 172, 175, 178, 181, 184, 187, 190, 19 5, 202, 204,663 20 9, 214, 217, 222, 224, 226, 228, 230, 232, 234,664 23 6, 238, 243, 248, 250, 254, 258, 262, 264, 268,665 27 2, 274, 278, 282, 284, 288, 292, 296, 300, 302,666 3 06, 310, 312, 316, 318, 322, 324, 328, 330, 334,667 3 36, 340, 342, 348, 353, 359, 361, 363, 367, 371,668 37 4, 375, 377, 380, 386, 393, 401, 403, 407, 409,669 41 1, 413, 415, 417, 419, 421, 423, 425, 427, 429,670 43 3, 434, 436, 438, 440, 442, 444, 446, 448, 450,671 45 2, 459, 464, 467, 475, 477, 481, 483, 486, 488,672 49 1, 493, 496, 499, 505, 513, 519, 529, 535, 545,673 5 47, 551, 553, 555, 559, 563, 566, 568, 571, 574,674 57 5, 577, 580, 584, 585, 587, 590, 594, 598, 603,675 60 4, 606, 608, 611, 617, 625, 632, 639, 644, 648,676 65 3, 656, 660, 663, 667, 671, 675, 679, 685, 689,677 69 3, 698, 700, 706, 713, 719, 726, 736, 747, 757,678 7 68, 771, 773, 776, 779, 782, 784, 791, 800, 811,679 8 24, 839, 840, 842, 843, 845, 847, 851, 856, 864,680 86 5, 867, 871, 873, 877, 879, 881, 883, 887, 889,681 89 1, 893, 897, 898, 900, 904, 909, 911, 915, 917,682 9 19, 923, 927, 931, 935, 939, 942, 946, 953, 957,683 96 1, 966, 968, 971, 974, 978, 984, 993, 1001, 1009,684 10 15, 1025, 1028, 1031, 1037, 1041, 1047, 1052, 1056, 1061,685 10 66, 1074, 1078, 1082, 1086, 1090, 1095, 1102, 1104, 1106,686 11 08, 1110, 1112, 1114, 1116, 1118, 1119, 1121, 1123, 1126,687 11 28, 1130, 1132, 1134, 1136, 1138, 1140, 1141, 1147, 1149,688 115 2, 1156, 1158, 1161, 1163, 1165, 1167, 1169, 1171, 1173,689 117 5, 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193,690 119 5, 1197, 1199, 1201, 1203, 1205, 1207, 1210, 1213, 1217,691 122 1, 1223, 1227, 1229, 1232, 1235, 1238, 1243, 1248, 1253,692 12 58, 1260, 1263, 1266, 1270, 1272, 1275, 1278, 1280, 1283,693 12 86, 1290, 1292, 1295, 1298, 1300, 1302, 1307, 1310, 1311,694 13 18, 1326, 1329, 1332, 1335, 1337, 1340, 1343, 1347, 1350,695 135 4, 1356, 1359, 1363, 1366, 1369, 1374, 1375, 1377, 1380,696 138 3, 1385, 1386, 1388, 1391, 1394, 1400, 1403, 1404, 1412,697 14 15, 1420, 1421, 1424, 1425, 1427, 1429, 1431, 1437, 1443,698 14 49, 1451, 1457, 1463, 1473, 1475, 1481, 1482, 1484, 1486,699 149 2, 1494, 1496, 1502, 1508, 1510, 1514, 1518, 1523, 1525,700 152 7, 1529, 1531, 1534, 1536, 1540, 1544, 1546, 1549, 1551,701 155 5, 1557, 1559, 1561, 1563, 1565, 1567, 1569, 1571, 1573,702 157 5, 1577, 1580, 1582, 1584, 1586, 1589, 1590, 1593, 1596,703 1 598, 1603, 1604, 1606, 1609, 1613, 1618, 1621, 1624, 1626,704 16 29, 1631, 1634, 1640, 1646, 1654, 1661, 1663, 1666, 1669,705 167 3, 1675, 1678, 1681, 1686, 1689, 1694, 1695, 1700, 1703,706 170 5, 1707, 1709, 1710, 1713, 1719, 1725, 1739, 1741, 1743,707 17 47, 1751, 1754, 1758, 1762, 1765, 1770, 1772, 1779, 1789,708 1 790, 1802, 1804, 1808, 1812, 1816, 1818, 1820, 1826, 1829,709 183 5, 1836, 1838, 1840, 1844, 1845, 1847, 1849, 1851, 1853,710 18 54, 1861, 1864, 1866, 1869, 1874, 1877, 1881, 1885, 1889,711 1 894, 1900, 1906, 1912, 1919, 1921, 1923, 1925, 1929, 1930,712 193 6, 1937, 1939, 1941, 1944, 1951, 1953, 1957, 1958, 1960,713 196 5, 1967, 1969, 1971, 1973, 1976, 1978, 1981, 1984, 1986,714 199 0, 1993, 1997, 2001, 2004, 2009, 2014, 2018, 2027, 2031,715 203 4, 2036, 2039, 2046, 2055, 2059, 2062, 2066, 2070, 2075,716 208 0, 2084, 2086, 2088, 2090, 2095, 2102, 2106, 2109, 2113,717 21 17, 2122, 2127, 2131, 2134, 2136, 2139, 2142, 2144, 2148,718 215 1, 2155, 2159, 2162, 2167, 2172, 2176, 2183, 2192, 2196,719 2 199, 2201, 2204, 2207, 2210, 2214, 2218, 2221, 2226, 2231,720 22 35, 2242, 2251, 2255, 2258, 2260, 2263, 2266, 2268, 2270,721 227 3, 2277, 2281, 2284, 2289, 2296, 2305, 2307, 2310, 2313,722 231 5, 2318, 2321, 2325, 2329, 2331, 2336, 2341, 2345, 2351,723 236 0, 2364, 2367, 2371, 2373, 2379, 2385, 2392, 2399, 2401,724 240 4, 2407, 2409, 2412, 2415, 2419, 2423, 2425, 2430, 2435,725 24 39, 2445, 2454, 2458, 2460, 2463, 2465, 2468, 2475, 2481,726 24 88, 2496, 2504, 2506, 2509, 2512, 2514, 2517, 2520, 2524,727 25 28, 2530, 2535, 2540, 2544, 2553, 2557, 2559, 2561, 2564,728 256 6, 2568, 2571, 2575, 2578, 2582, 2585, 2589, 2593, 2596,729 260 1, 2605, 2608, 2612, 2615, 2620, 2624, 2627, 2634, 2641,730 26 48, 2656, 2658, 2661, 2663, 2665, 2667, 2670, 2674, 2677,731 268 1, 2684, 2688, 2692, 2697, 2700, 2704, 2709, 2712, 2718,732 27 24, 2731, 2738, 2739, 2741, 2742662 172, 175, 178, 181, 184, 187, 190, 193, 198, 205, 663 207, 212, 217, 220, 225, 228, 230, 232, 234, 236, 664 238, 243, 248, 250, 254, 258, 262, 264, 268, 272, 665 274, 278, 282, 284, 288, 292, 296, 300, 302, 306, 666 310, 312, 316, 318, 322, 324, 328, 330, 334, 336, 667 340, 342, 348, 353, 359, 361, 363, 367, 371, 374, 668 375, 377, 380, 386, 393, 401, 403, 407, 409, 411, 669 413, 415, 417, 419, 421, 423, 425, 427, 429, 433, 670 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 671 459, 464, 467, 475, 477, 481, 483, 486, 488, 491, 672 493, 496, 499, 505, 513, 519, 529, 535, 545, 547, 673 551, 553, 555, 559, 563, 566, 568, 571, 574, 575, 674 577, 580, 584, 585, 587, 590, 594, 598, 603, 604, 675 606, 608, 611, 617, 625, 632, 639, 644, 648, 653, 676 656, 660, 663, 667, 671, 675, 679, 685, 689, 693, 677 698, 700, 706, 713, 719, 726, 736, 747, 757, 768, 678 771, 773, 776, 779, 782, 784, 791, 800, 811, 824, 679 839, 840, 842, 843, 845, 847, 851, 856, 864, 865, 680 867, 871, 873, 877, 879, 881, 883, 887, 889, 891, 681 893, 897, 898, 900, 904, 909, 911, 915, 917, 919, 682 923, 927, 931, 935, 939, 942, 946, 953, 957, 961, 683 966, 968, 971, 974, 978, 984, 993, 1001, 1009, 1015, 684 1025, 1028, 1031, 1037, 1041, 1047, 1052, 1056, 1061, 1066, 685 1074, 1078, 1082, 1086, 1090, 1095, 1102, 1104, 1106, 1108, 686 1110, 1112, 1114, 1116, 1118, 1119, 1121, 1123, 1126, 1128, 687 1130, 1132, 1134, 1136, 1138, 1140, 1141, 1147, 1149, 1152, 688 1156, 1158, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 689 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 1195, 690 1197, 1199, 1201, 1203, 1205, 1207, 1210, 1213, 1217, 1221, 691 1223, 1227, 1229, 1232, 1235, 1238, 1243, 1248, 1253, 1258, 692 1260, 1263, 1266, 1270, 1272, 1275, 1278, 1280, 1283, 1286, 693 1290, 1292, 1295, 1298, 1300, 1302, 1307, 1310, 1311, 1318, 694 1326, 1329, 1332, 1335, 1337, 1340, 1343, 1347, 1350, 1354, 695 1356, 1359, 1363, 1366, 1369, 1374, 1375, 1377, 1380, 1383, 696 1385, 1386, 1388, 1391, 1394, 1400, 1403, 1404, 1412, 1415, 697 1420, 1421, 1424, 1425, 1427, 1429, 1431, 1437, 1443, 1449, 698 1451, 1457, 1463, 1473, 1475, 1481, 1482, 1484, 1486, 1492, 699 1494, 1496, 1502, 1508, 1510, 1514, 1518, 1523, 1525, 1527, 700 1529, 1531, 1534, 1536, 1540, 1544, 1546, 1549, 1551, 1555, 701 1557, 1559, 1561, 1563, 1565, 1567, 1569, 1571, 1573, 1575, 702 1577, 1580, 1582, 1584, 1586, 1589, 1590, 1593, 1596, 1598, 703 1603, 1604, 1606, 1609, 1613, 1618, 1621, 1624, 1626, 1629, 704 1631, 1634, 1640, 1646, 1654, 1661, 1663, 1666, 1669, 1673, 705 1675, 1678, 1681, 1686, 1689, 1694, 1695, 1700, 1703, 1705, 706 1707, 1709, 1710, 1713, 1719, 1725, 1739, 1741, 1743, 1747, 707 1751, 1754, 1758, 1762, 1765, 1770, 1772, 1779, 1789, 1790, 708 1802, 1804, 1808, 1812, 1816, 1818, 1820, 1826, 1829, 1835, 709 1836, 1838, 1840, 1844, 1845, 1847, 1849, 1851, 1853, 1854, 710 1861, 1864, 1866, 1869, 1874, 1877, 1881, 1885, 1889, 1894, 711 1900, 1906, 1912, 1919, 1921, 1923, 1925, 1929, 1930, 1936, 712 1937, 1939, 1941, 1944, 1951, 1953, 1957, 1958, 1960, 1965, 713 1967, 1969, 1971, 1973, 1976, 1978, 1981, 1984, 1986, 1990, 714 1993, 1997, 2001, 2004, 2009, 2014, 2018, 2027, 2031, 2034, 715 2036, 2039, 2046, 2055, 2059, 2062, 2066, 2070, 2075, 2080, 716 2084, 2086, 2088, 2090, 2095, 2102, 2106, 2109, 2113, 2117, 717 2122, 2127, 2131, 2134, 2136, 2139, 2142, 2144, 2148, 2151, 718 2155, 2159, 2162, 2167, 2172, 2176, 2183, 2192, 2196, 2199, 719 2201, 2204, 2207, 2210, 2214, 2218, 2221, 2226, 2231, 2235, 720 2242, 2251, 2255, 2258, 2260, 2263, 2266, 2268, 2270, 2273, 721 2277, 2281, 2284, 2289, 2296, 2305, 2307, 2310, 2313, 2315, 722 2318, 2321, 2325, 2329, 2331, 2336, 2341, 2345, 2351, 2360, 723 2364, 2367, 2371, 2373, 2379, 2385, 2392, 2399, 2401, 2404, 724 2407, 2409, 2412, 2415, 2419, 2423, 2425, 2430, 2435, 2439, 725 2445, 2454, 2458, 2460, 2463, 2465, 2468, 2475, 2481, 2488, 726 2496, 2504, 2506, 2509, 2512, 2514, 2517, 2520, 2524, 2528, 727 2530, 2535, 2540, 2544, 2553, 2557, 2559, 2561, 2564, 2566, 728 2568, 2571, 2575, 2578, 2582, 2585, 2589, 2593, 2596, 2601, 729 2605, 2608, 2612, 2615, 2620, 2624, 2627, 2634, 2641, 2648, 730 2656, 2658, 2661, 2663, 2665, 2667, 2670, 2674, 2677, 2681, 731 2684, 2688, 2692, 2697, 2700, 2704, 2709, 2712, 2718, 2724, 732 2731, 2738, 2739, 2741, 2742 733 733 }; 734 734 … … 736 736 static const yytype_int16 yyrhs[] = 737 737 { 738 30 2, 0, -1, -1, -1, 79, -1, 80, -1, 81,738 301, 0, -1, -1, -1, 79, -1, 80, -1, 81, 739 739 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 740 740 -1, 72, -1, 140, -1, 83, -1, 84, -1, 82, 741 -1, 141, 82, -1, 72, -1, 140, -1, 109, 16 9,742 110, -1, 109, 17 3, 110, -1, 142, -1, 143, 111,743 134, 16 4, 135, 112, -1, 143, 109, 144, 110, -1,741 -1, 141, 82, -1, 72, -1, 140, -1, 109, 168, 742 110, -1, 109, 172, 110, -1, 142, -1, 143, 111, 743 134, 163, 135, 112, -1, 143, 109, 144, 110, -1, 744 744 143, 113, 139, -1, 143, 113, 111, 134, 146, 135, 745 745 112, -1, 143, 85, 139, -1, 143, 85, 111, 134, 746 746 146, 135, 112, -1, 143, 86, -1, 143, 87, -1, 747 109, 27 5, 110, 114, 279, 372, 115, -1, 143, 114,747 109, 274, 110, 114, 278, 371, 115, -1, 143, 114, 748 748 144, 115, -1, 145, -1, 144, 116, 145, -1, -1, 749 16 4, -1, 139, 117, 164, -1, 111, 134, 164, 135,750 112, 117, 16 4, -1, 111, 134, 164, 116, 167, 135,751 112, 117, 16 4, -1, 147, -1, 146, 116, 147, -1,749 163, -1, 139, 117, 163, -1, 111, 134, 163, 135, 750 112, 117, 163, -1, 111, 134, 163, 116, 166, 135, 751 112, 117, 163, -1, 147, -1, 146, 116, 147, -1, 752 752 139, -1, 139, 113, 147, -1, 139, 113, 111, 134, 753 753 146, 135, 112, -1, 139, 85, 147, -1, 139, 85, 754 754 111, 134, 146, 135, 112, -1, 143, -1, 136, -1, 755 141, -1, 40, 151, -1, 149, 151, -1, 150, 151,756 -1, 86, 148, -1, 87, 148, -1, 37, 148, -1,757 37, 1 09, 275, 110, -1, 38, 109, 275, 116, 139,758 110, -1, 76, -1, 76, 109, 276, 110, -1, 76,759 1 09, 145, 110, -1, 66, 148, -1, 66, 109, 275,760 110, -1, 118, -1, 119, -1, 94, -1, 120, -1,761 121, -1, 122, -1, 123, -1, 148, -1, 109, 27 5,762 110, 15 1, -1, 109, 275, 110, 166, -1, 151, -1,763 15 2, 118, 151, -1, 152, 124, 151, -1, 152, 125,764 15 1, -1, 152, -1, 153, 120, 152, -1, 153, 121,765 15 2, -1, 153, -1, 154, 88, 153, -1, 154, 89,766 15 3, -1, 154, -1, 155, 126, 154, -1, 155, 127,767 15 4, -1, 155, 90, 154, -1, 155, 91, 154, -1,768 15 5, -1, 156, 92, 155, -1, 156, 93, 155, -1,769 15 6, -1, 157, 119, 156, -1, 157, -1, 158, 128,770 15 7, -1, 158, -1, 159, 129, 158, -1, 159, -1,771 1 60, 94, 159, -1, 160, -1, 161, 95, 160, -1,772 16 1, -1, 161, 130, 169, 117, 162, -1, 161, 130,773 117, 16 2, -1, 161, 130, 169, 117, 166, -1, 162,774 -1, 16 2, -1, 148, 131, 164, -1, 148, 168, 164,775 -1, 16 6, 373, -1, -1, 164, -1, 111, 112, -1,776 111, 134, 16 4, 135, 112, -1, 111, 134, 116, 167,777 135, 112, -1, 111, 134, 16 4, 116, 167, 135, 112,778 -1, 16 5, -1, 167, 116, 165, -1, 97, -1, 98,755 141, -1, 86, 148, -1, 87, 148, -1, 40, 150, 756 -1, 149, 150, -1, 118, 150, -1, 119, 150, -1, 757 37, 148, -1, 37, 109, 274, 110, -1, 38, 109, 758 274, 116, 139, 110, -1, 76, -1, 76, 109, 275, 759 110, -1, 76, 109, 145, 110, -1, 66, 148, -1, 760 66, 109, 274, 110, -1, 94, 139, -1, 120, -1, 761 121, -1, 122, -1, 123, -1, 148, -1, 109, 274, 762 110, 150, -1, 109, 274, 110, 165, -1, 150, -1, 763 151, 119, 150, -1, 151, 124, 150, -1, 151, 125, 764 150, -1, 151, -1, 152, 121, 151, -1, 152, 122, 765 151, -1, 152, -1, 153, 88, 152, -1, 153, 89, 766 152, -1, 153, -1, 154, 126, 153, -1, 154, 127, 767 153, -1, 154, 90, 153, -1, 154, 91, 153, -1, 768 154, -1, 155, 92, 154, -1, 155, 93, 154, -1, 769 155, -1, 156, 120, 155, -1, 156, -1, 157, 128, 770 156, -1, 157, -1, 158, 129, 157, -1, 158, -1, 771 159, 94, 158, -1, 159, -1, 160, 95, 159, -1, 772 160, -1, 160, 130, 168, 117, 161, -1, 160, 130, 773 117, 161, -1, 160, 130, 168, 117, 165, -1, 161, 774 -1, 161, -1, 148, 131, 163, -1, 148, 167, 163, 775 -1, 165, 372, -1, -1, 163, -1, 111, 112, -1, 776 111, 134, 163, 135, 112, -1, 111, 134, 116, 166, 777 135, 112, -1, 111, 134, 163, 116, 166, 135, 112, 778 -1, 164, -1, 166, 116, 164, -1, 97, -1, 98, 779 779 -1, 99, -1, 100, -1, 101, -1, 102, -1, 103, 780 -1, 104, -1, 105, -1, 106, -1, 16 4, -1, 169,781 116, 16 4, -1, -1, 169, -1, 172, -1, 173, -1,782 17 7, -1, 178, -1, 190, -1, 192, -1, 193, -1,783 19 8, -1, 128, 143, 114, 144, 115, 132, -1, 72,784 117, 31 2, 171, -1, 114, 115, -1, 114, 134, 134,785 20 9, 174, 135, 115, -1, 175, -1, 174, 134, 175,786 -1, 21 2, -1, 40, 212, -1, 308, -1, 171, 135,787 -1, 17 1, -1, 176, 171, -1, 170, 132, -1, 41,788 109, 16 9, 110, 171, -1, 41, 109, 169, 110, 171,789 42, 17 1, -1, 43, 109, 169, 110, 183, -1, 43,790 109, 16 9, 110, 114, 134, 205, 184, 115, -1, 53,791 109, 16 9, 110, 183, -1, 53, 109, 169, 110, 114,792 134, 20 5, 186, 115, -1, 163, -1, 163, 96, 163,793 -1, 3 10, -1, 179, -1, 180, 116, 179, -1, 44,794 1 80, 117, -1, 45, 117, -1, 181, -1, 182, 181,795 -1, 18 2, 171, -1, -1, 185, -1, 182, 176, -1,796 18 5, 182, 176, -1, -1, 187, -1, 182, 189, -1,797 18 2, 176, 188, -1, 187, 182, 189, -1, 187, 182,798 17 6, 188, -1, -1, 189, -1, 56, -1, 56, 132,799 -1, 47, 109, 16 9, 110, 171, -1, 46, 171, 47,800 109, 16 9, 110, 132, -1, 48, 109, 134, 191, 110,801 17 1, -1, 170, 135, 132, 170, 132, 170, -1, 212,802 1 70, 132, 170, -1, 51, 72, 132, -1, 51, 118,803 16 9, 132, -1, 50, 132, -1, 50, 72, 132, -1,804 49, 132, -1, 49, 72, 132, -1, 52, 170, 132,805 -1, 61, 16 5, 132, -1, 62, 165, 132, -1, 62,806 16 5, 63, 164, 132, -1, 57, 173, 194, -1, 57,807 17 3, 196, -1, 57, 173, 194, 196, -1, 195, -1,808 58, 109, 96, 110, 17 3, -1, 195, 58, 109, 96,809 110, 17 3, -1, 59, 109, 96, 110, 173, -1, 195,810 59, 109, 96, 110, 17 3, -1, 58, 109, 134, 134,811 19 7, 135, 110, 173, 135, -1, 195, 58, 109, 134,812 134, 19 7, 135, 110, 173, 135, -1, 59, 109, 134,813 134, 19 7, 135, 110, 173, 135, -1, 195, 59, 109,814 134, 134, 19 7, 135, 110, 173, 135, -1, 60, 173,815 -1, 22 5, -1, 225, 309, -1, 225, 357, -1, 366,816 139, -1, 36 6, -1, 64, 199, 109, 141, 110, 132,817 -1, 64, 19 9, 109, 141, 117, 200, 110, 132, -1,818 64, 19 9, 109, 141, 117, 200, 117, 200, 110, 132,819 -1, 64, 19 9, 109, 141, 117, 200, 117, 200, 117,820 20 3, 110, 132, -1, 64, 199, 51, 109, 141, 117,821 117, 200, 117, 203, 117, 204, 110, 132, -1, -1,822 11, -1, -1, 20 1, -1, 202, -1, 201, 116, 202,823 -1, 141, 109, 16 3, 110, -1, 111, 163, 112, 141,824 109, 16 3, 110, -1, -1, 141, -1, 203, 116, 141,825 -1, 139, -1, 20 4, 116, 139, -1, 135, -1, 206,826 -1, 21 2, -1, 206, 134, 212, -1, 135, -1, 208,827 -1, 22 2, -1, 208, 134, 222, -1, -1, 210, -1,828 29, 21 1, 132, -1, 210, 29, 211, 132, -1, 274,829 -1, 21 1, 116, 274, -1, 213, -1, 222, -1, 214,830 135, 132, -1, 21 9, 135, 132, -1, 216, 135, 132,831 -1, 29 3, 135, 132, -1, 296, 135, 132, -1, 215,832 27 7, -1, 231, 215, 277, -1, 214, 135, 116, 134,833 27 2, 277, -1, 367, 272, 311, -1, 370, 272, 311,834 -1, 22 7, 370, 272, 311, -1, 217, -1, 227, 217,835 -1, 23 1, 217, -1, 231, 227, 217, -1, 216, 135,836 116, 134, 27 2, -1, 111, 112, 272, 109, 134, 260,837 135, 110, -1, 3 70, 272, 109, 134, 260, 135, 110,838 -1, 21 8, 272, 109, 134, 260, 135, 110, -1, 111,839 134, 26 2, 135, 112, -1, 111, 134, 262, 135, 116,840 134, 26 3, 135, 112, -1, 3, 215, -1, 3, 217,841 -1, 21 9, 135, 116, 134, 139, -1, 3, 225, 309,842 -1, 2 20, 135, 116, 134, 309, -1, 227, 3, 225,843 30 9, -1, 225, 3, 309, -1, 225, 3, 227, 309,844 -1, 3, 139, 131, 16 4, -1, 221, 135, 116, 134,845 139, 131, 16 4, -1, 223, 135, 132, -1, 220, 135,846 132, -1, 22 1, 135, 132, -1, 240, 135, 132, -1,847 22 4, 309, 311, 277, -1, 223, 116, 312, 309, 311,848 27 7, -1, 236, -1, 240, -1, 242, -1, 283, -1,849 23 7, -1, 241, -1, 243, -1, 284, -1, -1, 227,850 -1, 22 8, -1, 227, 228, -1, 229, -1, 314, -1,780 -1, 104, -1, 105, -1, 106, -1, 163, -1, 168, 781 116, 163, -1, -1, 168, -1, 171, -1, 172, -1, 782 176, -1, 177, -1, 189, -1, 191, -1, 192, -1, 783 197, -1, 128, 143, 114, 144, 115, 132, -1, 139, 784 117, 311, 170, -1, 114, 115, -1, 114, 134, 134, 785 208, 173, 135, 115, -1, 174, -1, 173, 134, 174, 786 -1, 211, -1, 40, 211, -1, 307, -1, 170, 135, 787 -1, 170, -1, 175, 170, -1, 169, 132, -1, 41, 788 109, 168, 110, 170, -1, 41, 109, 168, 110, 170, 789 42, 170, -1, 43, 109, 168, 110, 182, -1, 43, 790 109, 168, 110, 114, 134, 204, 183, 115, -1, 53, 791 109, 168, 110, 182, -1, 53, 109, 168, 110, 114, 792 134, 204, 185, 115, -1, 162, -1, 162, 96, 162, 793 -1, 309, -1, 178, -1, 179, 116, 178, -1, 44, 794 179, 117, -1, 45, 117, -1, 180, -1, 181, 180, 795 -1, 181, 170, -1, -1, 184, -1, 181, 175, -1, 796 184, 181, 175, -1, -1, 186, -1, 181, 188, -1, 797 181, 175, 187, -1, 186, 181, 188, -1, 186, 181, 798 175, 187, -1, -1, 188, -1, 56, -1, 56, 132, 799 -1, 47, 109, 168, 110, 170, -1, 46, 170, 47, 800 109, 168, 110, 132, -1, 48, 109, 134, 190, 110, 801 170, -1, 169, 135, 132, 169, 132, 169, -1, 211, 802 169, 132, 169, -1, 51, 139, 132, -1, 51, 119, 803 168, 132, -1, 50, 132, -1, 50, 139, 132, -1, 804 49, 132, -1, 49, 139, 132, -1, 52, 169, 132, 805 -1, 61, 164, 132, -1, 62, 164, 132, -1, 62, 806 164, 63, 163, 132, -1, 57, 172, 193, -1, 57, 807 172, 195, -1, 57, 172, 193, 195, -1, 194, -1, 808 58, 109, 96, 110, 172, -1, 194, 58, 109, 96, 809 110, 172, -1, 59, 109, 96, 110, 172, -1, 194, 810 59, 109, 96, 110, 172, -1, 58, 109, 134, 134, 811 196, 135, 110, 172, 135, -1, 194, 58, 109, 134, 812 134, 196, 135, 110, 172, 135, -1, 59, 109, 134, 813 134, 196, 135, 110, 172, 135, -1, 194, 59, 109, 814 134, 134, 196, 135, 110, 172, 135, -1, 60, 172, 815 -1, 224, -1, 224, 308, -1, 224, 356, -1, 365, 816 139, -1, 365, -1, 64, 198, 109, 141, 110, 132, 817 -1, 64, 198, 109, 141, 117, 199, 110, 132, -1, 818 64, 198, 109, 141, 117, 199, 117, 199, 110, 132, 819 -1, 64, 198, 109, 141, 117, 199, 117, 199, 117, 820 202, 110, 132, -1, 64, 198, 51, 109, 141, 117, 821 117, 199, 117, 202, 117, 203, 110, 132, -1, -1, 822 11, -1, -1, 200, -1, 201, -1, 200, 116, 201, 823 -1, 141, 109, 162, 110, -1, 111, 162, 112, 141, 824 109, 162, 110, -1, -1, 141, -1, 202, 116, 141, 825 -1, 139, -1, 203, 116, 139, -1, 135, -1, 205, 826 -1, 211, -1, 205, 134, 211, -1, 135, -1, 207, 827 -1, 221, -1, 207, 134, 221, -1, -1, 209, -1, 828 29, 210, 132, -1, 209, 29, 210, 132, -1, 273, 829 -1, 210, 116, 273, -1, 212, -1, 221, -1, 213, 830 135, 132, -1, 218, 135, 132, -1, 215, 135, 132, 831 -1, 292, 135, 132, -1, 295, 135, 132, -1, 214, 832 276, -1, 230, 214, 276, -1, 213, 135, 116, 134, 833 271, 276, -1, 366, 271, 310, -1, 369, 271, 310, 834 -1, 226, 369, 271, 310, -1, 216, -1, 226, 216, 835 -1, 230, 216, -1, 230, 226, 216, -1, 215, 135, 836 116, 134, 271, -1, 111, 112, 271, 109, 134, 259, 837 135, 110, -1, 369, 271, 109, 134, 259, 135, 110, 838 -1, 217, 271, 109, 134, 259, 135, 110, -1, 111, 839 134, 261, 135, 112, -1, 111, 134, 261, 135, 116, 840 134, 262, 135, 112, -1, 3, 214, -1, 3, 216, 841 -1, 218, 135, 116, 134, 139, -1, 3, 224, 308, 842 -1, 219, 135, 116, 134, 308, -1, 226, 3, 224, 843 308, -1, 224, 3, 308, -1, 224, 3, 226, 308, 844 -1, 3, 139, 131, 163, -1, 220, 135, 116, 134, 845 139, 131, 163, -1, 222, 135, 132, -1, 219, 135, 846 132, -1, 220, 135, 132, -1, 239, 135, 132, -1, 847 223, 308, 310, 276, -1, 222, 116, 311, 308, 310, 848 276, -1, 235, -1, 239, -1, 241, -1, 282, -1, 849 236, -1, 240, -1, 242, -1, 283, -1, -1, 226, 850 -1, 227, -1, 226, 227, -1, 228, -1, 313, -1, 851 851 10, -1, 12, -1, 11, -1, 14, -1, 67, -1, 852 -1, 13, 109, 2 30, 286, 110, -1, 232, -1, 227,853 23 2, -1, 231, 227, 232, -1, 233, -1, 232, 233,854 -1, 23 4, -1, 5, -1, 7, -1, 4, -1, 6,852 -1, 13, 109, 229, 285, 110, -1, 231, -1, 226, 853 231, -1, 230, 226, 231, -1, 232, -1, 231, 232, 854 -1, 233, -1, 5, -1, 7, -1, 4, -1, 6, 855 855 -1, 8, -1, 9, -1, 69, -1, 71, -1, 16, 856 856 -1, 21, -1, 20, -1, 18, -1, 19, -1, 17, 857 857 -1, 22, -1, 23, -1, 15, -1, 25, -1, 26, 858 -1, 27, -1, 24, -1, 23 7, -1, 231, 237, -1,859 23 6, 233, -1, 236, 233, 227, -1, 236, 233, 237,860 -1, 23 8, -1, 226, 239, 226, -1, 235, -1, 227,861 23 5, -1, 238, 228, -1, 238, 235, -1, 28, 109,862 27 6, 110, -1, 28, 109, 169, 110, -1, 78, 109,863 27 6, 110, -1, 78, 109, 169, 110, -1, 241, -1,864 23 1, 241, -1, 240, 233, -1, 240, 233, 227, -1,865 24 4, -1, 227, 244, -1, 241, 228, -1, 243, -1,866 23 1, 243, -1, 242, 233, -1, 242, 233, 227, -1,867 74, -1, 22 7, 74, -1, 243, 228, -1, 245, -1,868 25 6, -1, 247, 114, 248, 115, -1, 247, 274, -1,869 -1, 24 7, 274, 246, 114, 248, 115, -1, 247, 109,870 29 2, 110, 114, 248, 115, -1, 247, 285, -1, 31,871 31 2, -1, 32, 312, -1, 249, -1, 248, 249, -1,872 2 50, 132, -1, 40, 250, 132, -1, 251, 132, -1,873 40, 25 1, 132, -1, 366, -1, 366, 274, -1, 250,874 116, 27 4, -1, 250, 116, -1, 225, 252, -1, 251,875 116, 31 2, 252, -1, -1, 254, -1, 318, 253, -1,876 33 1, 253, -1, 357, -1, -1, 254, -1, 117, 163,877 -1, 30, 31 2, -1, 255, 114, 258, 372, 115, -1,878 25 5, 274, -1, -1, 255, 274, 257, 114, 258, 372,879 115, -1, 27 4, 259, -1, 258, 116, 274, 259, -1,880 -1, 131, 16 3, -1, -1, 261, -1, 263, -1, 262,881 -1, 26 2, 135, 116, 134, 263, -1, 263, 135, 116,882 134, 96, -1, 26 2, 135, 116, 134, 96, -1, 267,883 -1, 26 3, 135, 116, 134, 267, -1, 262, 135, 116,884 134, 26 7, -1, 262, 135, 116, 134, 263, 135, 116,885 134, 26 7, -1, 268, -1, 263, 135, 116, 134, 268,886 -1, -1, 26 5, -1, 266, -1, 266, 135, 116, 134,887 96, -1, 2 70, -1, 269, -1, 266, 135, 116, 134,888 2 70, -1, 266, 135, 116, 134, 269, -1, 269, -1,889 36 2, 272, 373, -1, 370, 272, 373, -1, 227, 370,890 27 2, 373, -1, 217, -1, 270, -1, 362, -1, 370,891 -1, 22 7, 370, -1, 371, -1, 224, 336, 373, -1,892 22 4, 340, 373, -1, 224, -1, 224, 351, -1, 139,893 -1, 27 1, 116, 139, -1, 137, -1, 74, -1, 75,858 -1, 27, -1, 24, -1, 236, -1, 230, 236, -1, 859 235, 232, -1, 235, 232, 226, -1, 235, 232, 236, 860 -1, 237, -1, 225, 238, 225, -1, 234, -1, 226, 861 234, -1, 237, 227, -1, 237, 234, -1, 28, 109, 862 275, 110, -1, 28, 109, 168, 110, -1, 78, 109, 863 275, 110, -1, 78, 109, 168, 110, -1, 240, -1, 864 230, 240, -1, 239, 232, -1, 239, 232, 226, -1, 865 243, -1, 226, 243, -1, 240, 227, -1, 242, -1, 866 230, 242, -1, 241, 232, -1, 241, 232, 226, -1, 867 74, -1, 226, 74, -1, 242, 227, -1, 244, -1, 868 255, -1, 246, 114, 247, 115, -1, 246, 273, -1, 869 -1, 246, 273, 245, 114, 247, 115, -1, 246, 109, 870 291, 110, 114, 247, 115, -1, 246, 284, -1, 31, 871 311, -1, 32, 311, -1, 248, -1, 247, 248, -1, 872 249, 132, -1, 40, 249, 132, -1, 250, 132, -1, 873 40, 250, 132, -1, 365, -1, 365, 273, -1, 249, 874 116, 273, -1, 249, 116, -1, 224, 251, -1, 250, 875 116, 311, 251, -1, -1, 253, -1, 317, 252, -1, 876 330, 252, -1, 356, -1, -1, 253, -1, 117, 162, 877 -1, 30, 311, -1, 254, 114, 257, 371, 115, -1, 878 254, 273, -1, -1, 254, 273, 256, 114, 257, 371, 879 115, -1, 273, 258, -1, 257, 116, 273, 258, -1, 880 -1, 131, 162, -1, -1, 260, -1, 262, -1, 261, 881 -1, 261, 135, 116, 134, 262, -1, 262, 135, 116, 882 134, 96, -1, 261, 135, 116, 134, 96, -1, 266, 883 -1, 262, 135, 116, 134, 266, -1, 261, 135, 116, 884 134, 266, -1, 261, 135, 116, 134, 262, 135, 116, 885 134, 266, -1, 267, -1, 262, 135, 116, 134, 267, 886 -1, -1, 264, -1, 265, -1, 265, 135, 116, 134, 887 96, -1, 269, -1, 268, -1, 265, 135, 116, 134, 888 269, -1, 265, 135, 116, 134, 268, -1, 268, -1, 889 361, 271, 372, -1, 369, 271, 372, -1, 226, 369, 890 271, 372, -1, 216, -1, 269, -1, 361, -1, 369, 891 -1, 226, 369, -1, 370, -1, 223, 335, 372, -1, 892 223, 339, 372, -1, 223, -1, 223, 350, -1, 139, 893 -1, 270, 116, 139, -1, 137, -1, 74, -1, 75, 894 894 -1, 138, -1, 74, -1, 75, -1, 139, -1, 74, 895 -1, 75, -1, 36 6, -1, 225, -1, 225, 357, -1,896 36 6, -1, 371, -1, 225, -1, 225, 345, -1, -1,897 131, 27 8, -1, 107, 278, -1, 164, -1, 114, 279,898 37 2, 115, -1, -1, 278, -1, 280, 278, -1, 279,899 116, 27 8, -1, 279, 116, 280, 278, -1, 281, 117,900 -1, 27 4, 117, -1, 282, -1, 281, 282, -1, 80,901 -1, 113, 27 4, -1, 111, 134, 164, 135, 112, -1,902 111, 134, 3 10, 135, 112, -1, 111, 134, 163, 96,903 16 3, 135, 112, -1, 113, 111, 134, 146, 135, 112,904 -1, 28 4, -1, 231, 284, -1, 283, 233, -1, 283,905 23 3, 227, -1, 285, -1, 227, 285, -1, 284, 228,906 -1, 75, 109, 29 2, 110, -1, 287, 373, -1, 286,907 116, 28 7, 373, -1, -1, 289, 274, 288, 290, -1,908 22 5, 336, -1, 33, -1, 35, -1, 34, -1, -1,909 2 90, 291, -1, 129, 274, 109, 292, 110, -1, 129,910 114, 134, 29 8, 115, -1, 129, 109, 134, 286, 135,911 110, 114, 134, 29 8, 115, 109, 292, 110, -1, 276,912 -1, 16 4, -1, 292, 116, 276, -1, 292, 116, 164,913 -1, 33, 29 4, -1, 232, 33, 294, -1, 293, 116,914 29 4, -1, 295, 290, -1, 295, 290, 131, 276, -1,915 27 4, -1, 273, 109, 134, 286, 135, 110, -1, 36,916 27 4, 109, 134, 286, 135, 110, 114, 115, -1, -1,917 36, 27 4, 109, 134, 286, 135, 110, 114, 297, 298,918 115, -1, 29 9, -1, 298, 134, 299, -1, 300, 135,919 132, -1, 30 1, 135, 132, -1, 215, -1, 217, -1,920 300, 135, 116, 134, 272, -1, 225, 309, -1, 301,921 135, 116, 134, 30 9, -1, -1, 303, -1, 305, -1,922 30 3, 134, 305, -1, -1, 303, -1, 212, -1, 307,923 -1, 19 8, -1, -1, 5, 82, 306, 114, 304, 115,924 -1, 40, 30 5, -1, 308, -1, 323, 173, -1, 327,925 134, 20 7, 173, -1, 216, 173, -1, 224, 323, 173,926 -1, 22 7, 323, 173, -1, 231, 323, 173, -1, 231,927 22 7, 323, 173, -1, 224, 327, 134, 207, 173, -1,928 22 7, 327, 134, 207, 173, -1, 231, 327, 134, 207,929 17 3, -1, 231, 227, 327, 134, 207, 173, -1, 318,930 -1, 3 31, -1, 323, -1, 163, 123, 163, -1, -1,931 64, 109, 141, 110, 31 2, -1, -1, 313, -1, 314,932 -1, 31 3, 314, -1, 39, 109, 109, 315, 110, 110,933 -1, 31 6, -1, 315, 116, 316, -1, -1, 317, -1,934 31 7, 109, 170, 110, -1, 272, -1, 234, -1, 235,935 -1, 22 8, -1, 319, 312, -1, 320, -1, 321, 312,936 -1, 32 2, 312, -1, 137, -1, 109, 319, 110, -1,937 1 49, 318, -1, 149, 227, 318, -1, 109, 320, 110,938 -1, 31 9, 349, -1, 109, 320, 110, 349, -1, 109,939 32 1, 110, 350, -1, 109, 321, 110, -1, 109, 320,940 110, 109, 134, 26 4, 135, 110, -1, 109, 322, 110,941 -1, 32 4, 312, -1, 325, -1, 326, 312, -1, 319,942 109, 134, 26 4, 135, 110, -1, 109, 325, 110, 109,943 134, 26 4, 135, 110, -1, 109, 324, 110, -1, 149,944 32 3, -1, 149, 227, 323, -1, 109, 325, 110, -1,945 109, 32 5, 110, 349, -1, 109, 326, 110, 350, -1,946 109, 32 6, 110, -1, 328, -1, 329, -1, 330, -1,947 31 9, 109, 271, 110, -1, 109, 329, 110, 109, 271,948 110, -1, 109, 32 8, 110, -1, 149, 327, -1, 149,949 22 7, 327, -1, 109, 329, 110, -1, 109, 329, 110,950 34 9, -1, 109, 330, 110, 350, -1, 109, 330, 110,951 -1, 33 2, 312, -1, 333, -1, 334, 312, -1, 335,952 31 2, -1, 341, -1, 109, 332, 110, -1, 149, 331,953 -1, 1 49, 227, 331, -1, 109, 333, 110, -1, 332,954 34 9, -1, 109, 333, 110, 349, -1, 109, 334, 110,955 3 50, -1, 109, 334, 110, -1, 332, 109, 134, 264,956 135, 110, -1, 109, 33 3, 110, 109, 134, 264, 135,957 110, -1, 109, 33 5, 110, -1, 319, 312, -1, 337,958 -1, 33 8, 312, -1, 339, 312, -1, 149, 336, -1,959 1 49, 227, 336, -1, 109, 337, 110, -1, 319, 355,960 -1, 109, 33 7, 110, 349, -1, 109, 338, 110, 350,961 -1, 109, 33 8, 110, -1, 319, 109, 134, 264, 135,962 110, -1, 109, 33 7, 110, 109, 134, 264, 135, 110,963 -1, 109, 33 9, 110, -1, 341, 312, -1, 342, -1,964 34 3, 312, -1, 344, 312, -1, 74, -1, 75, -1,965 1 49, 340, -1, 149, 227, 340, -1, 109, 342, 110,966 -1, 34 1, 355, -1, 109, 342, 110, 355, -1, 341,967 109, 134, 26 4, 135, 110, -1, 109, 342, 110, 109,968 134, 26 4, 135, 110, -1, 346, -1, 347, 312, -1,969 34 8, 312, -1, 149, -1, 149, 227, -1, 149, 345,970 -1, 1 49, 227, 345, -1, 109, 346, 110, -1, 349,971 -1, 109, 34 6, 110, 349, -1, 109, 347, 110, 350,972 -1, 109, 34 7, 110, -1, 109, 134, 264, 135, 110,973 -1, 109, 34 6, 110, 109, 134, 264, 135, 110, -1,974 109, 34 8, 110, -1, 111, 112, -1, 111, 112, 350,975 -1, 3 50, -1, 111, 134, 164, 135, 112, -1, 111,976 134, 11 8, 135, 112, -1, 350, 111, 134, 164, 135,977 112, -1, 3 50, 111, 134, 118, 135, 112, -1, 352,978 -1, 35 3, 312, -1, 354, 312, -1, 149, -1, 149,979 22 7, -1, 149, 351, -1, 149, 227, 351, -1, 109,980 35 2, 110, -1, 355, -1, 109, 352, 110, 355, -1,981 109, 35 3, 110, 350, -1, 109, 353, 110, -1, 109,982 134, 26 4, 135, 110, -1, 109, 352, 110, 109, 134,983 26 4, 135, 110, -1, 109, 354, 110, -1, 356, -1,984 35 6, 350, -1, 350, -1, 111, 112, -1, 111, 134,985 22 7, 118, 135, 112, -1, 111, 134, 227, 135, 112,986 -1, 111, 134, 22 7, 164, 135, 112, -1, 111, 134,987 7, 22 6, 164, 135, 112, -1, 111, 134, 227, 7,988 16 4, 135, 112, -1, 358, -1, 359, 312, -1, 360,989 31 2, -1, 149, -1, 149, 227, -1, 149, 357, -1,990 1 49, 227, 357, -1, 109, 358, 110, -1, 349, -1,991 109, 35 8, 110, 349, -1, 109, 359, 110, 350, -1,992 109, 35 9, 110, -1, 109, 358, 110, 109, 134, 264,993 135, 110, -1, 109, 3 60, 110, -1, 362, -1, 370,994 -1, 22 7, 370, -1, 363, -1, 364, -1, 149, 225,995 -1, 22 7, 149, 225, -1, 149, 371, -1, 227, 149,996 37 1, -1, 149, 361, -1, 227, 149, 361, -1, 111,997 112, 22 5, -1, 365, 225, -1, 111, 112, 350, 225,998 -1, 36 5, 350, 225, -1, 350, 225, -1, 111, 112,999 36 3, -1, 365, 363, -1, 111, 112, 350, 363, -1,1000 36 5, 350, 363, -1, 350, 363, -1, 111, 134, 227,1001 11 8, 135, 112, -1, 111, 134, 227, 164, 135, 112,1002 -1, 111, 134, 23 1, 164, 135, 112, -1, 111, 134,1003 23 1, 227, 164, 135, 112, -1, 370, -1, 227, 370,1004 -1, 36 7, -1, 368, -1, 369, -1, 149, 225, -1,1005 22 7, 149, 225, -1, 149, 371, -1, 227, 149, 371,1006 -1, 1 49, 366, -1, 227, 149, 366, -1, 111, 112,1007 22 5, -1, 111, 112, 350, 225, -1, 350, 225, -1,1008 111, 112, 36 8, -1, 111, 112, 350, 368, -1, 350,1009 36 8, -1, 111, 134, 263, 135, 112, -1, 111, 112,1010 109, 2 60, 110, -1, 370, 109, 134, 260, 135, 110,1011 -1, 21 8, 109, 134, 260, 135, 110, -1, -1, 116,1012 -1, -1, 131, 16 4, -1895 -1, 75, -1, 365, -1, 224, -1, 224, 356, -1, 896 365, -1, 370, -1, 224, -1, 224, 344, -1, -1, 897 131, 277, -1, 107, 277, -1, 163, -1, 114, 278, 898 371, 115, -1, -1, 277, -1, 279, 277, -1, 278, 899 116, 277, -1, 278, 116, 279, 277, -1, 280, 117, 900 -1, 273, 117, -1, 281, -1, 280, 281, -1, 80, 901 -1, 113, 273, -1, 111, 134, 163, 135, 112, -1, 902 111, 134, 309, 135, 112, -1, 111, 134, 162, 96, 903 162, 135, 112, -1, 113, 111, 134, 146, 135, 112, 904 -1, 283, -1, 230, 283, -1, 282, 232, -1, 282, 905 232, 226, -1, 284, -1, 226, 284, -1, 283, 227, 906 -1, 75, 109, 291, 110, -1, 286, 372, -1, 285, 907 116, 286, 372, -1, -1, 288, 273, 287, 289, -1, 908 224, 335, -1, 33, -1, 35, -1, 34, -1, -1, 909 289, 290, -1, 129, 273, 109, 291, 110, -1, 129, 910 114, 134, 297, 115, -1, 129, 109, 134, 285, 135, 911 110, 114, 134, 297, 115, 109, 291, 110, -1, 275, 912 -1, 163, -1, 291, 116, 275, -1, 291, 116, 163, 913 -1, 33, 293, -1, 231, 33, 293, -1, 292, 116, 914 293, -1, 294, 289, -1, 294, 289, 131, 275, -1, 915 273, -1, 272, 109, 134, 285, 135, 110, -1, 36, 916 273, 109, 134, 285, 135, 110, 114, 115, -1, -1, 917 36, 273, 109, 134, 285, 135, 110, 114, 296, 297, 918 115, -1, 298, -1, 297, 134, 298, -1, 299, 135, 919 132, -1, 300, 135, 132, -1, 214, -1, 216, -1, 920 299, 135, 116, 134, 271, -1, 224, 308, -1, 300, 921 135, 116, 134, 308, -1, -1, 302, -1, 304, -1, 922 302, 134, 304, -1, -1, 302, -1, 211, -1, 306, 923 -1, 197, -1, -1, 5, 82, 305, 114, 303, 115, 924 -1, 40, 304, -1, 307, -1, 322, 172, -1, 326, 925 134, 206, 172, -1, 215, 172, -1, 223, 322, 172, 926 -1, 226, 322, 172, -1, 230, 322, 172, -1, 230, 927 226, 322, 172, -1, 223, 326, 134, 206, 172, -1, 928 226, 326, 134, 206, 172, -1, 230, 326, 134, 206, 929 172, -1, 230, 226, 326, 134, 206, 172, -1, 317, 930 -1, 322, -1, 330, -1, 162, 123, 162, -1, -1, 931 64, 109, 141, 110, 311, -1, -1, 312, -1, 313, 932 -1, 312, 313, -1, 39, 109, 109, 314, 110, 110, 933 -1, 315, -1, 314, 116, 315, -1, -1, 316, -1, 934 316, 109, 169, 110, -1, 271, -1, 233, -1, 234, 935 -1, 227, -1, 318, 311, -1, 319, -1, 320, 311, 936 -1, 321, 311, -1, 137, -1, 109, 318, 110, -1, 937 119, 317, -1, 119, 226, 317, -1, 109, 319, 110, 938 -1, 318, 348, -1, 109, 319, 110, 348, -1, 109, 939 320, 110, 349, -1, 109, 320, 110, -1, 109, 319, 940 110, 109, 134, 263, 135, 110, -1, 109, 321, 110, 941 -1, 323, 311, -1, 324, -1, 325, 311, -1, 318, 942 109, 134, 263, 135, 110, -1, 109, 324, 110, 109, 943 134, 263, 135, 110, -1, 109, 323, 110, -1, 119, 944 322, -1, 119, 226, 322, -1, 109, 324, 110, -1, 945 109, 324, 110, 348, -1, 109, 325, 110, 349, -1, 946 109, 325, 110, -1, 327, -1, 328, -1, 329, -1, 947 318, 109, 270, 110, -1, 109, 328, 110, 109, 270, 948 110, -1, 109, 327, 110, -1, 119, 326, -1, 119, 949 226, 326, -1, 109, 328, 110, -1, 109, 328, 110, 950 348, -1, 109, 329, 110, 349, -1, 109, 329, 110, 951 -1, 331, 311, -1, 332, -1, 333, 311, -1, 334, 952 311, -1, 340, -1, 109, 331, 110, -1, 119, 330, 953 -1, 119, 226, 330, -1, 109, 332, 110, -1, 331, 954 348, -1, 109, 332, 110, 348, -1, 109, 333, 110, 955 349, -1, 109, 333, 110, -1, 331, 109, 134, 263, 956 135, 110, -1, 109, 332, 110, 109, 134, 263, 135, 957 110, -1, 109, 334, 110, -1, 318, 311, -1, 336, 958 -1, 337, 311, -1, 338, 311, -1, 119, 335, -1, 959 119, 226, 335, -1, 109, 336, 110, -1, 318, 354, 960 -1, 109, 336, 110, 348, -1, 109, 337, 110, 349, 961 -1, 109, 337, 110, -1, 318, 109, 134, 263, 135, 962 110, -1, 109, 336, 110, 109, 134, 263, 135, 110, 963 -1, 109, 338, 110, -1, 340, 311, -1, 341, -1, 964 342, 311, -1, 343, 311, -1, 74, -1, 75, -1, 965 119, 339, -1, 119, 226, 339, -1, 109, 341, 110, 966 -1, 340, 354, -1, 109, 341, 110, 354, -1, 340, 967 109, 134, 263, 135, 110, -1, 109, 341, 110, 109, 968 134, 263, 135, 110, -1, 345, -1, 346, 311, -1, 969 347, 311, -1, 119, -1, 119, 226, -1, 119, 344, 970 -1, 119, 226, 344, -1, 109, 345, 110, -1, 348, 971 -1, 109, 345, 110, 348, -1, 109, 346, 110, 349, 972 -1, 109, 346, 110, -1, 109, 134, 263, 135, 110, 973 -1, 109, 345, 110, 109, 134, 263, 135, 110, -1, 974 109, 347, 110, -1, 111, 112, -1, 111, 112, 349, 975 -1, 349, -1, 111, 134, 163, 135, 112, -1, 111, 976 134, 119, 135, 112, -1, 349, 111, 134, 163, 135, 977 112, -1, 349, 111, 134, 119, 135, 112, -1, 351, 978 -1, 352, 311, -1, 353, 311, -1, 119, -1, 119, 979 226, -1, 119, 350, -1, 119, 226, 350, -1, 109, 980 351, 110, -1, 354, -1, 109, 351, 110, 354, -1, 981 109, 352, 110, 349, -1, 109, 352, 110, -1, 109, 982 134, 263, 135, 110, -1, 109, 351, 110, 109, 134, 983 263, 135, 110, -1, 109, 353, 110, -1, 355, -1, 984 355, 349, -1, 349, -1, 111, 112, -1, 111, 134, 985 226, 119, 135, 112, -1, 111, 134, 226, 135, 112, 986 -1, 111, 134, 226, 163, 135, 112, -1, 111, 134, 987 7, 225, 163, 135, 112, -1, 111, 134, 226, 7, 988 163, 135, 112, -1, 357, -1, 358, 311, -1, 359, 989 311, -1, 119, -1, 119, 226, -1, 119, 356, -1, 990 119, 226, 356, -1, 109, 357, 110, -1, 348, -1, 991 109, 357, 110, 348, -1, 109, 358, 110, 349, -1, 992 109, 358, 110, -1, 109, 357, 110, 109, 134, 263, 993 135, 110, -1, 109, 359, 110, -1, 361, -1, 369, 994 -1, 226, 369, -1, 362, -1, 363, -1, 119, 224, 995 -1, 226, 119, 224, -1, 119, 370, -1, 226, 119, 996 370, -1, 119, 360, -1, 226, 119, 360, -1, 111, 997 112, 224, -1, 364, 224, -1, 111, 112, 349, 224, 998 -1, 364, 349, 224, -1, 349, 224, -1, 111, 112, 999 362, -1, 364, 362, -1, 111, 112, 349, 362, -1, 1000 364, 349, 362, -1, 349, 362, -1, 111, 134, 226, 1001 119, 135, 112, -1, 111, 134, 226, 163, 135, 112, 1002 -1, 111, 134, 230, 163, 135, 112, -1, 111, 134, 1003 230, 226, 163, 135, 112, -1, 369, -1, 226, 369, 1004 -1, 366, -1, 367, -1, 368, -1, 119, 224, -1, 1005 226, 119, 224, -1, 119, 370, -1, 226, 119, 370, 1006 -1, 119, 365, -1, 226, 119, 365, -1, 111, 112, 1007 224, -1, 111, 112, 349, 224, -1, 349, 224, -1, 1008 111, 112, 367, -1, 111, 112, 349, 367, -1, 349, 1009 367, -1, 111, 134, 262, 135, 112, -1, 111, 112, 1010 109, 259, 110, -1, 369, 109, 134, 259, 135, 110, 1011 -1, 217, 109, 134, 259, 135, 110, -1, -1, 116, 1012 -1, -1, 131, 163, -1 1013 1013 }; 1014 1014 … … 1016 1016 static const yytype_uint16 yyrline[] = 1017 1017 { 1018 0, 29 0, 290, 296, 305, 306, 307, 311, 312, 313,1019 31 7, 318, 322, 323, 327, 328, 332, 333, 339, 341,1020 34 3, 345, 350, 351, 357, 361, 363, 364, 366, 367,1021 3 69, 371, 373, 381, 382, 388, 389, 390, 395, 397,1022 40 2, 403, 407, 411, 413, 415, 417, 422, 425, 427,1023 4 29, 431, 436, 438, 440, 442, 444, 446, 448, 450,1024 45 2, 454, 456, 463, 464, 466, 470, 471, 472, 473,1025 47 7, 478, 480, 485, 486, 488, 490, 495, 496, 498,1026 50 3, 504, 506, 511, 512, 514, 516, 518, 523, 524,1027 52 6, 531, 532, 537, 538, 543, 544, 549, 550, 555,1028 55 6, 561, 562, 564, 566, 571, 576, 577, 579, 581,1029 58 7, 588, 594, 596, 598, 600, 605, 606, 611, 612,1030 61 3, 614, 615, 616, 617, 618, 619, 620, 624, 625,1031 63 1, 632, 638, 639, 640, 641, 642, 643, 644, 645,1032 6 46, 656, 663, 665, 675, 676, 681, 683, 685, 687,1033 6 91, 692, 697, 702, 705, 707, 709, 714, 716, 724,1034 72 5, 727, 731, 732, 737, 738, 743, 744, 748, 753,1035 75 4, 758, 760, 766, 767, 771, 773, 775, 777, 783,1036 78 4, 788, 789, 793, 795, 797, 802, 804, 809, 811,1037 815, 81 8, 822, 825, 829, 831, 835, 837, 844, 846,1038 8 48, 857, 859, 861, 863, 865, 870, 872, 874, 876,1039 8 81, 894, 895, 900, 902, 907, 911, 913, 915, 917,1040 9 19, 925, 926, 932, 933, 937, 938, 943, 945, 951,1041 95 2, 954, 959, 961, 968, 970, 974, 975, 980, 982,1042 98 6, 987, 991, 993, 997, 998, 1002, 1003, 1007, 1008,1043 102 3, 1024, 1025, 1026, 1027, 1031, 1036, 1043, 1053, 1058,1044 106 3, 1071, 1076, 1081, 1086, 1091, 1099, 1121, 1126, 1133,1045 113 5, 1142, 1147, 1152, 1163, 1168, 1173, 1178, 1183, 1192,1046 1 197, 1205, 1206, 1207, 1208, 1214, 1219, 1227, 1228, 1229,1047 123 0, 1234, 1235, 1236, 1237, 1242, 1243, 1252, 1253, 1258,1048 12 59, 1264, 1266, 1268, 1270, 1272, 1275, 1274, 1286, 1287,1049 12 89, 1299, 1300, 1305, 1309, 1311, 1313, 1315, 1317, 1319,1050 132 1, 1323, 1328, 1330, 1332, 1334, 1336, 1338, 1340, 1342,1051 134 4, 1346, 1348, 1350, 1352, 1358, 1359, 1361, 1363, 1365,1052 13 70, 1371, 1377, 1378, 1380, 1382, 1387, 1389, 1391, 1393,1053 139 8, 1399, 1401, 1403, 1408, 1409, 1411, 1416, 1417, 1419,1054 142 1, 1426, 1428, 1430, 1435, 1436, 1440, 1442, 1448, 1447,1055 145 1, 1453, 1458, 1460, 1465, 1467, 1472, 1473, 1475, 1476,1056 14 81, 1482, 1484, 1486, 1491, 1493, 1499, 1500, 1502, 1505,1057 15 08, 1513, 1514, 1519, 1524, 1528, 1530, 1536, 1535, 1542,1058 154 4, 1550, 1551, 1559, 1560, 1564, 1565, 1566, 1568, 1570,1059 157 7, 1578, 1580, 1582, 1587, 1588, 1594, 1595, 1599, 1600,1060 160 5, 1606, 1607, 1609, 1617, 1618, 1620, 1623, 1625, 1629,1061 16 30, 1631, 1633, 1635, 1639, 1644, 1652, 1653, 1662, 1664,1062 166 9, 1670, 1671, 1675, 1676, 1677, 1681, 1682, 1683, 1687,1063 168 8, 1689, 1694, 1695, 1696, 1697, 1703, 1704, 1706, 1711,1064 171 2, 1717, 1718, 1719, 1720, 1721, 1736, 1737, 1742, 1743,1065 175 1, 1753, 1755, 1758, 1760, 1762, 1785, 1786, 1788, 1790,1066 179 5, 1796, 1798, 1803, 1808, 1809, 1815, 1814, 1818, 1822,1067 182 4, 1826, 1832, 1833, 1838, 1843, 1845, 1850, 1852, 1853,1068 185 5, 1860, 1862, 1864, 1869, 1871, 1876, 1881, 1889, 1895,1069 1 894, 1908, 1909, 1914, 1915, 1919, 1924, 1929, 1937, 1942,1070 195 3, 1954, 1965, 1966, 1972, 1973, 1977, 1978, 1979, 1982,1071 198 1, 1992, 1997, 2003, 2009, 2018, 2024, 2030, 2036, 2042,1072 205 0, 2056, 2064, 2070, 2079, 2080, 2081, 2085, 2089, 2091,1073 209 6, 2097, 2101, 2102, 2107, 2113, 2114, 2117, 2119, 2120,1074 212 4, 2125, 2126, 2127, 2161, 2163, 2164, 2166, 2171, 2176,1075 21 81, 2183, 2185, 2190, 2192, 2194, 2196, 2201, 2203, 2212,1076 221 4, 2215, 2220, 2222, 2224, 2229, 2231, 2233, 2238, 2240,1077 224 2, 2251, 2252, 2253, 2257, 2259, 2261, 2266, 2268, 2270,1078 227 5, 2277, 2279, 2294, 2296, 2297, 2299, 2304, 2305, 2310,1079 231 2, 2314, 2319, 2321, 2323, 2325, 2330, 2332, 2334, 2344,1080 234 6, 2347, 2349, 2354, 2356, 2358, 2363, 2365, 2367, 2369,1081 237 4, 2376, 2378, 2409, 2411, 2412, 2414, 2419, 2424, 2432,1082 243 4, 2436, 2441, 2443, 2448, 2450, 2464, 2465, 2467, 2472,1083 247 4, 2476, 2478, 2480, 2485, 2486, 2488, 2490, 2495, 2497,1084 2 499, 2505, 2507, 2509, 2513, 2515, 2517, 2519, 2533, 2534,1085 253 6, 2541, 2543, 2545, 2547, 2549, 2554, 2555, 2557, 2559,1086 256 4, 2566, 2568, 2574, 2575, 2577, 2586, 2589, 2591, 2594,1087 259 6, 2598, 2611, 2612, 2614, 2619, 2621, 2623, 2625, 2627,1088 263 2, 2633, 2635, 2637, 2642, 2644, 2652, 2653, 2654, 2659,1089 266 0, 2664, 2666, 2668, 2670, 2672, 2674, 2681, 2683, 2685,1090 268 7, 2689, 2691, 2693, 2695, 2697, 2699, 2704, 2706, 2708,1091 27 13, 2739, 2740, 2742, 2746, 2747, 2751, 2753, 2755, 2757,1092 275 9, 2761, 2768, 2770, 2772, 2774, 2776, 2778, 2783, 2788,1093 27 90, 2792, 2810, 2812, 2817, 28181018 0, 292, 292, 298, 307, 308, 309, 313, 314, 315, 1019 319, 320, 324, 325, 329, 330, 334, 335, 341, 343, 1020 345, 347, 352, 353, 359, 363, 365, 366, 368, 369, 1021 371, 373, 375, 383, 384, 390, 391, 392, 397, 399, 1022 404, 405, 409, 413, 415, 417, 419, 424, 427, 429, 1023 431, 433, 435, 437, 439, 441, 447, 449, 451, 453, 1024 455, 457, 459, 461, 463, 468, 469, 470, 471, 475, 1025 476, 478, 483, 484, 486, 488, 493, 494, 496, 501, 1026 502, 504, 509, 510, 512, 514, 516, 521, 522, 524, 1027 529, 530, 535, 536, 541, 542, 547, 548, 553, 554, 1028 559, 560, 562, 564, 569, 574, 575, 577, 579, 585, 1029 586, 592, 594, 596, 598, 603, 604, 609, 610, 611, 1030 612, 613, 614, 615, 616, 617, 618, 622, 623, 629, 1031 630, 636, 637, 638, 639, 640, 641, 642, 643, 644, 1032 653, 660, 662, 672, 673, 678, 680, 682, 684, 688, 1033 689, 694, 699, 702, 704, 706, 711, 713, 721, 722, 1034 724, 728, 729, 734, 735, 740, 741, 745, 750, 751, 1035 755, 757, 763, 764, 768, 770, 772, 774, 780, 781, 1036 785, 786, 790, 792, 794, 799, 801, 806, 808, 812, 1037 815, 819, 822, 826, 828, 832, 834, 841, 843, 845, 1038 854, 856, 858, 860, 862, 867, 869, 871, 873, 878, 1039 891, 892, 897, 899, 904, 908, 910, 912, 914, 916, 1040 922, 923, 929, 930, 934, 935, 940, 942, 948, 949, 1041 951, 956, 958, 965, 967, 971, 972, 977, 979, 983, 1042 984, 988, 990, 994, 995, 999, 1000, 1004, 1005, 1020, 1043 1021, 1022, 1023, 1024, 1028, 1033, 1040, 1050, 1055, 1060, 1044 1068, 1073, 1078, 1083, 1088, 1096, 1118, 1123, 1130, 1132, 1045 1139, 1144, 1149, 1160, 1165, 1170, 1175, 1180, 1189, 1194, 1046 1202, 1203, 1204, 1205, 1211, 1216, 1224, 1225, 1226, 1227, 1047 1231, 1232, 1233, 1234, 1239, 1240, 1249, 1250, 1255, 1256, 1048 1261, 1263, 1265, 1267, 1269, 1272, 1271, 1283, 1284, 1286, 1049 1296, 1297, 1302, 1306, 1308, 1310, 1312, 1314, 1316, 1318, 1050 1320, 1325, 1327, 1329, 1331, 1333, 1335, 1337, 1339, 1341, 1051 1343, 1345, 1347, 1349, 1355, 1356, 1358, 1360, 1362, 1367, 1052 1368, 1374, 1375, 1377, 1379, 1384, 1386, 1388, 1390, 1395, 1053 1396, 1398, 1400, 1405, 1406, 1408, 1413, 1414, 1416, 1418, 1054 1423, 1425, 1427, 1432, 1433, 1437, 1439, 1445, 1444, 1448, 1055 1450, 1455, 1457, 1462, 1464, 1469, 1470, 1472, 1473, 1478, 1056 1479, 1481, 1483, 1488, 1490, 1496, 1497, 1499, 1502, 1505, 1057 1510, 1511, 1516, 1521, 1525, 1527, 1533, 1532, 1539, 1541, 1058 1547, 1548, 1556, 1557, 1561, 1562, 1563, 1565, 1567, 1574, 1059 1575, 1577, 1579, 1584, 1585, 1591, 1592, 1596, 1597, 1602, 1060 1603, 1604, 1606, 1614, 1615, 1617, 1620, 1622, 1626, 1627, 1061 1628, 1630, 1632, 1636, 1641, 1649, 1650, 1659, 1661, 1666, 1062 1667, 1668, 1672, 1673, 1674, 1678, 1679, 1680, 1684, 1685, 1063 1686, 1691, 1692, 1693, 1694, 1700, 1701, 1703, 1708, 1709, 1064 1714, 1715, 1716, 1717, 1718, 1733, 1734, 1739, 1740, 1748, 1065 1750, 1752, 1755, 1757, 1759, 1782, 1783, 1785, 1787, 1792, 1066 1793, 1795, 1800, 1805, 1806, 1812, 1811, 1815, 1819, 1821, 1067 1823, 1829, 1830, 1835, 1840, 1842, 1847, 1849, 1850, 1852, 1068 1857, 1859, 1861, 1866, 1868, 1873, 1878, 1886, 1892, 1891, 1069 1905, 1906, 1911, 1912, 1916, 1921, 1926, 1934, 1939, 1950, 1070 1951, 1962, 1963, 1969, 1970, 1974, 1975, 1976, 1979, 1978, 1071 1989, 1994, 1999, 2005, 2014, 2020, 2026, 2032, 2038, 2046, 1072 2052, 2060, 2066, 2075, 2076, 2077, 2081, 2085, 2087, 2092, 1073 2093, 2097, 2098, 2103, 2109, 2110, 2113, 2115, 2116, 2120, 1074 2121, 2122, 2123, 2157, 2159, 2160, 2162, 2167, 2172, 2177, 1075 2179, 2181, 2186, 2188, 2190, 2192, 2197, 2199, 2209, 2211, 1076 2212, 2217, 2219, 2221, 2226, 2228, 2230, 2235, 2237, 2239, 1077 2248, 2249, 2250, 2254, 2256, 2258, 2263, 2265, 2267, 2272, 1078 2274, 2276, 2291, 2293, 2294, 2296, 2301, 2302, 2307, 2309, 1079 2311, 2316, 2318, 2320, 2322, 2327, 2329, 2331, 2341, 2343, 1080 2344, 2346, 2351, 2353, 2355, 2360, 2362, 2364, 2366, 2371, 1081 2373, 2375, 2406, 2408, 2409, 2411, 2416, 2421, 2429, 2431, 1082 2433, 2438, 2440, 2445, 2447, 2461, 2462, 2464, 2469, 2471, 1083 2473, 2475, 2477, 2482, 2483, 2485, 2487, 2492, 2494, 2496, 1084 2502, 2504, 2506, 2510, 2512, 2514, 2516, 2530, 2531, 2533, 1085 2538, 2540, 2542, 2544, 2546, 2551, 2552, 2554, 2556, 2561, 1086 2563, 2565, 2571, 2572, 2574, 2583, 2586, 2588, 2591, 2593, 1087 2595, 2608, 2609, 2611, 2616, 2618, 2620, 2622, 2624, 2629, 1088 2630, 2632, 2634, 2639, 2641, 2649, 2650, 2651, 2656, 2657, 1089 2661, 2663, 2665, 2667, 2669, 2671, 2678, 2680, 2682, 2684, 1090 2686, 2688, 2690, 2692, 2694, 2696, 2701, 2703, 2705, 2710, 1091 2736, 2737, 2739, 2743, 2744, 2748, 2750, 2752, 2754, 2756, 1092 2758, 2765, 2767, 2769, 2771, 2773, 2775, 2780, 2785, 2787, 1093 2789, 2807, 2809, 2814, 2815 1094 1094 }; 1095 1095 #endif … … 1117 1117 "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign", 1118 1118 "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN", 1119 "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "':'", "' *'",1120 "' &'", "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'",1119 "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "':'", "'!'", 1120 "'*'", "'&'", "'+'", "'-'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", 1121 1121 "'|'", "'?'", "'='", "';'", "$accept", "push", "pop", "constant", 1122 1122 "identifier", "no_01_identifier", "no_attr_identifier", "zero_one", 1123 1123 "string_literal_list", "primary_expression", "postfix_expression", 1124 1124 "argument_expression_list", "argument_expression", "field_list", "field", 1125 "unary_expression", " ptrref_operator", "unary_operator",1126 " cast_expression", "multiplicative_expression", "additive_expression",1127 " shift_expression", "relational_expression", "equality_expression",1128 " AND_expression", "exclusive_OR_expression", "inclusive_OR_expression",1125 "unary_expression", "unary_operator", "cast_expression", 1126 "multiplicative_expression", "additive_expression", "shift_expression", 1127 "relational_expression", "equality_expression", "AND_expression", 1128 "exclusive_OR_expression", "inclusive_OR_expression", 1129 1129 "logical_AND_expression", "logical_OR_expression", 1130 1130 "conditional_expression", "constant_expression", "assignment_expression", … … 1185 1185 "function_ptr", "function_array", "old_function_declarator", 1186 1186 "old_function_no_ptr", "old_function_ptr", "old_function_array", 1187 " variable_type_redeclarator", "paren_type", "type_ptr", "type_array",1187 "type_redeclarator", "paren_type", "type_ptr", "type_array", 1188 1188 "type_function", "identifier_parameter_declarator", 1189 1189 "identifier_parameter_ptr", "identifier_parameter_array", … … 1224 1224 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 1225 1225 355, 356, 357, 358, 359, 360, 361, 362, 363, 40, 1226 41, 91, 93, 46, 123, 125, 44, 58, 42, 38,1227 43, 45, 33, 126, 47, 37, 60, 62, 94, 124,1226 41, 91, 93, 46, 123, 125, 44, 58, 33, 42, 1227 38, 43, 45, 126, 47, 37, 60, 62, 94, 124, 1228 1228 63, 61, 59 1229 1229 }; … … 1239 1239 146, 146, 147, 147, 147, 147, 147, 148, 148, 148, 1240 1240 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 1241 148, 148, 148, 14 9, 149, 149, 150, 150, 150, 150,1242 15 1, 151, 151, 152, 152, 152, 152, 153, 153, 153,1243 15 4, 154, 154, 155, 155, 155, 155, 155, 156, 156,1244 156, 15 7, 157, 158, 158, 159, 159, 160, 160, 161,1245 161, 16 2, 162, 162, 162, 163, 164, 164, 164, 164,1246 16 5, 165, 166, 166, 166, 166, 167, 167, 168, 168,1247 16 8, 168, 168, 168, 168, 168, 168, 168, 169, 169,1248 1 70, 170, 171, 171, 171, 171, 171, 171, 171, 171,1249 171, 172, 17 3, 173, 174, 174, 175, 175, 175, 175,1250 17 6, 176, 177, 178, 178, 178, 178, 178, 178, 179,1251 17 9, 179, 180, 180, 181, 181, 182, 182, 183, 184,1252 184, 18 5, 185, 186, 186, 187, 187, 187, 187, 188,1253 188, 18 9, 189, 190, 190, 190, 191, 191, 192, 192,1254 19 2, 192, 192, 192, 192, 192, 192, 192, 193, 193,1255 193, 19 4, 194, 194, 194, 194, 195, 195, 195, 195,1256 196, 19 7, 197, 197, 197, 197, 198, 198, 198, 198,1257 198, 19 9, 199, 200, 200, 201, 201, 202, 202, 203,1258 20 3, 203, 204, 204, 205, 205, 206, 206, 207, 207,1259 20 8, 208, 209, 209, 210, 210, 211, 211, 212, 212,1260 21 3, 213, 213, 213, 213, 214, 214, 214, 215, 215,1261 215, 21 6, 216, 216, 216, 216, 217, 217, 217, 218,1262 218, 21 9, 219, 219, 220, 220, 220, 220, 220, 221,1263 221, 22 2, 222, 222, 222, 223, 223, 224, 224, 224,1264 224, 22 5, 225, 225, 225, 226, 226, 227, 227, 228,1265 228, 22 9, 229, 229, 229, 229, 230, 229, 231, 231,1266 231, 23 2, 232, 233, 234, 234, 234, 234, 234, 234,1267 23 4, 234, 235, 235, 235, 235, 235, 235, 235, 235,1268 23 5, 235, 235, 235, 235, 236, 236, 236, 236, 236,1269 23 7, 237, 238, 238, 238, 238, 239, 239, 239, 239,1270 2 40, 240, 240, 240, 241, 241, 241, 242, 242, 242,1271 242, 24 3, 243, 243, 244, 244, 245, 245, 246, 245,1272 24 5, 245, 247, 247, 248, 248, 249, 249, 249, 249,1273 2 50, 250, 250, 250, 251, 251, 252, 252, 252, 252,1274 252, 25 3, 253, 254, 255, 256, 256, 257, 256, 258,1275 258, 25 9, 259, 260, 260, 261, 261, 261, 261, 261,1276 26 2, 262, 262, 262, 263, 263, 264, 264, 265, 265,1277 26 6, 266, 266, 266, 267, 267, 267, 267, 267, 268,1278 26 8, 268, 268, 268, 269, 269, 270, 270, 271, 271,1279 27 2, 272, 272, 273, 273, 273, 274, 274, 274, 275,1280 27 5, 275, 276, 276, 276, 276, 277, 277, 277, 278,1281 278, 27 9, 279, 279, 279, 279, 280, 280, 281, 281,1282 28 2, 282, 282, 282, 282, 282, 283, 283, 283, 283,1283 28 4, 284, 284, 285, 286, 286, 288, 287, 287, 289,1284 28 9, 289, 290, 290, 291, 291, 291, 292, 292, 292,1285 292, 29 3, 293, 293, 294, 294, 295, 295, 296, 297,1286 29 6, 298, 298, 299, 299, 300, 300, 300, 301, 301,1287 30 2, 302, 303, 303, 304, 304, 305, 305, 305, 306,1288 30 5, 305, 307, 307, 307, 308, 308, 308, 308, 308,1289 30 8, 308, 308, 308, 309, 309, 309, 310, 311, 311,1290 31 2, 312, 313, 313, 314, 315, 315, 316, 316, 316,1291 31 7, 317, 317, 317, 318, 318, 318, 318, 319, 319,1292 3 20, 320, 320, 321, 321, 321, 321, 322, 322, 323,1293 32 3, 323, 324, 324, 324, 325, 325, 325, 326, 326,1294 326, 32 7, 327, 327, 328, 328, 328, 329, 329, 329,1295 3 30, 330, 330, 331, 331, 331, 331, 332, 332, 333,1296 33 3, 333, 334, 334, 334, 334, 335, 335, 335, 336,1297 33 6, 336, 336, 337, 337, 337, 338, 338, 338, 338,1298 33 9, 339, 339, 340, 340, 340, 340, 341, 341, 342,1299 34 2, 342, 343, 343, 344, 344, 345, 345, 345, 346,1300 34 6, 346, 346, 346, 347, 347, 347, 347, 348, 348,1301 348, 34 9, 349, 349, 350, 350, 350, 350, 351, 351,1302 351, 35 2, 352, 352, 352, 352, 353, 353, 353, 353,1303 35 4, 354, 354, 355, 355, 355, 356, 356, 356, 356,1304 35 6, 356, 357, 357, 357, 358, 358, 358, 358, 358,1305 35 9, 359, 359, 359, 360, 360, 361, 361, 361, 362,1306 362, 36 3, 363, 363, 363, 363, 363, 364, 364, 364,1307 36 4, 364, 364, 364, 364, 364, 364, 365, 365, 365,1308 365, 36 6, 366, 366, 367, 367, 368, 368, 368, 368,1309 36 8, 368, 369, 369, 369, 369, 369, 369, 370, 371,1310 37 1, 371, 372, 372, 373, 3731241 148, 148, 148, 148, 148, 149, 149, 149, 149, 150, 1242 150, 150, 151, 151, 151, 151, 152, 152, 152, 153, 1243 153, 153, 154, 154, 154, 154, 154, 155, 155, 155, 1244 156, 156, 157, 157, 158, 158, 159, 159, 160, 160, 1245 161, 161, 161, 161, 162, 163, 163, 163, 163, 164, 1246 164, 165, 165, 165, 165, 166, 166, 167, 167, 167, 1247 167, 167, 167, 167, 167, 167, 167, 168, 168, 169, 1248 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 1249 171, 172, 172, 173, 173, 174, 174, 174, 174, 175, 1250 175, 176, 177, 177, 177, 177, 177, 177, 178, 178, 1251 178, 179, 179, 180, 180, 181, 181, 182, 183, 183, 1252 184, 184, 185, 185, 186, 186, 186, 186, 187, 187, 1253 188, 188, 189, 189, 189, 190, 190, 191, 191, 191, 1254 191, 191, 191, 191, 191, 191, 191, 192, 192, 192, 1255 193, 193, 193, 193, 193, 194, 194, 194, 194, 195, 1256 196, 196, 196, 196, 196, 197, 197, 197, 197, 197, 1257 198, 198, 199, 199, 200, 200, 201, 201, 202, 202, 1258 202, 203, 203, 204, 204, 205, 205, 206, 206, 207, 1259 207, 208, 208, 209, 209, 210, 210, 211, 211, 212, 1260 212, 212, 212, 212, 213, 213, 213, 214, 214, 214, 1261 215, 215, 215, 215, 215, 216, 216, 216, 217, 217, 1262 218, 218, 218, 219, 219, 219, 219, 219, 220, 220, 1263 221, 221, 221, 221, 222, 222, 223, 223, 223, 223, 1264 224, 224, 224, 224, 225, 225, 226, 226, 227, 227, 1265 228, 228, 228, 228, 228, 229, 228, 230, 230, 230, 1266 231, 231, 232, 233, 233, 233, 233, 233, 233, 233, 1267 233, 234, 234, 234, 234, 234, 234, 234, 234, 234, 1268 234, 234, 234, 234, 235, 235, 235, 235, 235, 236, 1269 236, 237, 237, 237, 237, 238, 238, 238, 238, 239, 1270 239, 239, 239, 240, 240, 240, 241, 241, 241, 241, 1271 242, 242, 242, 243, 243, 244, 244, 245, 244, 244, 1272 244, 246, 246, 247, 247, 248, 248, 248, 248, 249, 1273 249, 249, 249, 250, 250, 251, 251, 251, 251, 251, 1274 252, 252, 253, 254, 255, 255, 256, 255, 257, 257, 1275 258, 258, 259, 259, 260, 260, 260, 260, 260, 261, 1276 261, 261, 261, 262, 262, 263, 263, 264, 264, 265, 1277 265, 265, 265, 266, 266, 266, 266, 266, 267, 267, 1278 267, 267, 267, 268, 268, 269, 269, 270, 270, 271, 1279 271, 271, 272, 272, 272, 273, 273, 273, 274, 274, 1280 274, 275, 275, 275, 275, 276, 276, 276, 277, 277, 1281 278, 278, 278, 278, 278, 279, 279, 280, 280, 281, 1282 281, 281, 281, 281, 281, 282, 282, 282, 282, 283, 1283 283, 283, 284, 285, 285, 287, 286, 286, 288, 288, 1284 288, 289, 289, 290, 290, 290, 291, 291, 291, 291, 1285 292, 292, 292, 293, 293, 294, 294, 295, 296, 295, 1286 297, 297, 298, 298, 299, 299, 299, 300, 300, 301, 1287 301, 302, 302, 303, 303, 304, 304, 304, 305, 304, 1288 304, 306, 306, 306, 307, 307, 307, 307, 307, 307, 1289 307, 307, 307, 308, 308, 308, 309, 310, 310, 311, 1290 311, 312, 312, 313, 314, 314, 315, 315, 315, 316, 1291 316, 316, 316, 317, 317, 317, 317, 318, 318, 319, 1292 319, 319, 320, 320, 320, 320, 321, 321, 322, 322, 1293 322, 323, 323, 323, 324, 324, 324, 325, 325, 325, 1294 326, 326, 326, 327, 327, 327, 328, 328, 328, 329, 1295 329, 329, 330, 330, 330, 330, 331, 331, 332, 332, 1296 332, 333, 333, 333, 333, 334, 334, 334, 335, 335, 1297 335, 335, 336, 336, 336, 337, 337, 337, 337, 338, 1298 338, 338, 339, 339, 339, 339, 340, 340, 341, 341, 1299 341, 342, 342, 343, 343, 344, 344, 344, 345, 345, 1300 345, 345, 345, 346, 346, 346, 346, 347, 347, 347, 1301 348, 348, 348, 349, 349, 349, 349, 350, 350, 350, 1302 351, 351, 351, 351, 351, 352, 352, 352, 352, 353, 1303 353, 353, 354, 354, 354, 355, 355, 355, 355, 355, 1304 355, 356, 356, 356, 357, 357, 357, 357, 357, 358, 1305 358, 358, 358, 359, 359, 360, 360, 360, 361, 361, 1306 362, 362, 362, 362, 362, 362, 363, 363, 363, 363, 1307 363, 363, 363, 363, 363, 363, 364, 364, 364, 364, 1308 365, 365, 365, 366, 366, 367, 367, 367, 367, 367, 1309 367, 368, 368, 368, 368, 368, 368, 369, 370, 370, 1310 370, 371, 371, 372, 372 1311 1311 }; 1312 1312 … … 1319 1319 2, 7, 4, 1, 3, 0, 1, 3, 7, 9, 1320 1320 1, 3, 1, 3, 7, 3, 7, 1, 1, 1, 1321 2, 2, 2, 2, 2, 2, 4, 6, 1, 4,1322 4, 2, 4, 1, 1, 1, 1, 1, 1, 1,1323 1, 4, 4, 1, 3, 3, 3, 1, 3, 3,1324 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,1325 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,1326 3, 1, 5, 4, 5, 1, 1, 3, 3, 2,1327 0, 1, 2, 5, 6, 7, 1, 3, 1, 1,1328 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,1329 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,1330 6, 4, 2, 7, 1, 3, 1, 2, 1, 2,1331 1, 2, 2, 5, 7, 5, 9, 5, 9, 1,1332 3, 1, 1, 3, 3, 2, 1, 2, 2, 0,1333 1, 2, 3, 0, 1, 2, 3, 3, 4, 0,1334 1, 1, 2, 5, 7, 6, 6, 4, 3, 4,1335 2, 3, 2, 3, 3, 3, 3, 5, 3, 3,1336 4, 1, 5, 6, 5, 6, 9, 10, 9, 10,1337 2, 1, 2, 2, 2, 1, 6, 8, 10, 12,1338 14, 0, 1, 0, 1, 1, 3, 4, 7, 0,1339 1, 3, 1, 3, 1, 1, 1, 3, 1, 1,1340 1, 3, 0, 1, 3, 4, 1, 3, 1, 1,1341 3, 3, 3, 3, 3, 2, 3, 6, 3, 3,1342 4, 1, 2, 2, 3, 5, 8, 7, 7, 5,1343 9, 2, 2, 5, 3, 5, 4, 3, 4, 4,1344 7, 3, 3, 3, 3, 4, 6, 1, 1, 1,1345 1, 1, 1, 1, 1, 0, 1, 1, 2, 1,1346 1, 1, 1, 1, 1, 1, 0, 5, 1, 2,1347 3, 1, 2, 1, 1, 1, 1, 1, 1, 1,1321 2, 2, 2, 2, 2, 2, 2, 4, 6, 1, 1322 4, 4, 2, 4, 2, 1, 1, 1, 1, 1, 1323 4, 4, 1, 3, 3, 3, 1, 3, 3, 1, 1324 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1325 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1326 1, 5, 4, 5, 1, 1, 3, 3, 2, 0, 1327 1, 2, 5, 6, 7, 1, 3, 1, 1, 1, 1328 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 1329 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 1330 4, 2, 7, 1, 3, 1, 2, 1, 2, 1, 1331 2, 2, 5, 7, 5, 9, 5, 9, 1, 3, 1332 1, 1, 3, 3, 2, 1, 2, 2, 0, 1, 1333 2, 3, 0, 1, 2, 3, 3, 4, 0, 1, 1334 1, 2, 5, 7, 6, 6, 4, 3, 4, 2, 1335 3, 2, 3, 3, 3, 3, 5, 3, 3, 4, 1336 1, 5, 6, 5, 6, 9, 10, 9, 10, 2, 1337 1, 2, 2, 2, 1, 6, 8, 10, 12, 14, 1338 0, 1, 0, 1, 1, 3, 4, 7, 0, 1, 1339 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1340 3, 0, 1, 3, 4, 1, 3, 1, 1, 3, 1341 3, 3, 3, 3, 2, 3, 6, 3, 3, 4, 1342 1, 2, 2, 3, 5, 8, 7, 7, 5, 9, 1343 2, 2, 5, 3, 5, 4, 3, 4, 4, 7, 1344 3, 3, 3, 3, 4, 6, 1, 1, 1, 1, 1345 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1346 1, 1, 1, 1, 1, 0, 5, 1, 2, 3, 1347 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1348 1348 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1349 1, 1, 1, 1, 1, 1, 2, 2, 3, 3,1350 1, 3, 1, 2, 2, 2, 4, 4, 4, 4,1351 1, 2, 2, 3, 1, 2, 2, 1, 2, 2,1352 3, 1, 2, 2, 1, 1, 4, 2, 0, 6,1353 7, 2, 2, 2, 1, 2, 2, 3, 2, 3,1354 1, 2, 3, 2, 2, 4, 0, 1, 2, 2,1355 1, 0, 1, 2, 2, 5, 2, 0, 7, 2,1356 4, 0, 2, 0, 1, 1, 1, 5, 5, 5,1357 1, 5, 5, 9, 1, 5, 0, 1, 1, 5,1358 1, 1, 5, 5, 1, 3, 3, 4, 1, 1,1359 1, 1, 2, 1, 3, 3, 1, 2, 1, 3,1349 1, 1, 1, 1, 1, 2, 2, 3, 3, 1, 1350 3, 1, 2, 2, 2, 4, 4, 4, 4, 1, 1351 2, 2, 3, 1, 2, 2, 1, 2, 2, 3, 1352 1, 2, 2, 1, 1, 4, 2, 0, 6, 7, 1353 2, 2, 2, 1, 2, 2, 3, 2, 3, 1, 1354 2, 3, 2, 2, 4, 0, 1, 2, 2, 1, 1355 0, 1, 2, 2, 5, 2, 0, 7, 2, 4, 1356 0, 2, 0, 1, 1, 1, 5, 5, 5, 1, 1357 5, 5, 9, 1, 5, 0, 1, 1, 5, 1, 1358 1, 5, 5, 1, 3, 3, 4, 1, 1, 1, 1359 1, 2, 1, 3, 3, 1, 2, 1, 3, 1, 1360 1360 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1361 1, 2, 1, 1, 1, 2, 0, 2, 2, 1,1362 4, 0, 1, 2, 3, 4, 2, 2, 1, 2,1363 1, 2, 5, 5, 7, 6, 1, 2, 2, 3,1364 1, 2, 2, 4, 2, 4, 0, 4, 2, 1,1365 1, 1, 0, 2, 5, 5, 13, 1, 1, 3,1366 3, 2, 3, 3, 2, 4, 1, 6, 9, 0,1367 11, 1, 3, 3, 3, 1, 1, 5, 2, 5,1368 0, 1, 1, 3, 0, 1, 1, 1, 1, 0,1369 6, 2, 1, 2, 4, 2, 3, 3, 3, 4,1370 5, 5, 5, 6, 1, 1, 1, 3, 0, 5,1371 0, 1, 1, 2, 6, 1, 3, 0, 1, 4,1372 1, 1, 1, 1, 2, 1, 2, 2, 1, 3,1373 2, 3, 3, 2, 4, 4, 3, 8, 3, 2,1374 1, 2, 6, 8, 3, 2, 3, 3, 4, 4,1375 3, 1, 1, 1, 4, 6, 3, 2, 3, 3,1376 4, 4, 3, 2, 1, 2, 2, 1, 3, 2,1377 3, 3, 2, 4, 4, 3, 6, 8, 3, 2,1378 1, 2, 2, 2, 3, 3, 2, 4, 4, 3,1379 6, 8, 3, 2, 1, 2, 2, 1, 1, 2,1380 3, 3, 2, 4, 6, 8, 1, 2, 2, 1,1381 2, 2, 3, 3, 1, 4, 4, 3, 5, 8,1382 3, 2, 3, 1, 5, 5, 6, 6, 1, 2,1383 2, 1, 2, 2, 3, 3, 1, 4, 4, 3,1384 5, 8, 3, 1, 2, 1, 2, 6, 5, 6,1385 7, 7, 1, 2, 2, 1, 2, 2, 3, 3,1386 1, 4, 4, 3, 8, 3, 1, 1, 2, 1,1387 1, 2, 3, 2, 3, 2, 3, 3, 2, 4,1388 3, 2, 3, 2, 4, 3, 2, 6, 6, 6,1389 7, 1, 2, 1, 1, 1, 2, 3, 2, 3,1390 2, 3, 3, 4, 2, 3, 4, 2, 5, 5,1391 6, 6,0, 1, 0, 21361 2, 1, 1, 1, 2, 0, 2, 2, 1, 4, 1362 0, 1, 2, 3, 4, 2, 2, 1, 2, 1, 1363 2, 5, 5, 7, 6, 1, 2, 2, 3, 1, 1364 2, 2, 4, 2, 4, 0, 4, 2, 1, 1, 1365 1, 0, 2, 5, 5, 13, 1, 1, 3, 3, 1366 2, 3, 3, 2, 4, 1, 6, 9, 0, 11, 1367 1, 3, 3, 3, 1, 1, 5, 2, 5, 0, 1368 1, 1, 3, 0, 1, 1, 1, 1, 0, 6, 1369 2, 1, 2, 4, 2, 3, 3, 3, 4, 5, 1370 5, 5, 6, 1, 1, 1, 3, 0, 5, 0, 1371 1, 1, 2, 6, 1, 3, 0, 1, 4, 1, 1372 1, 1, 1, 2, 1, 2, 2, 1, 3, 2, 1373 3, 3, 2, 4, 4, 3, 8, 3, 2, 1, 1374 2, 6, 8, 3, 2, 3, 3, 4, 4, 3, 1375 1, 1, 1, 4, 6, 3, 2, 3, 3, 4, 1376 4, 3, 2, 1, 2, 2, 1, 3, 2, 3, 1377 3, 2, 4, 4, 3, 6, 8, 3, 2, 1, 1378 2, 2, 2, 3, 3, 2, 4, 4, 3, 6, 1379 8, 3, 2, 1, 2, 2, 1, 1, 2, 3, 1380 3, 2, 4, 6, 8, 1, 2, 2, 1, 2, 1381 2, 3, 3, 1, 4, 4, 3, 5, 8, 3, 1382 2, 3, 1, 5, 5, 6, 6, 1, 2, 2, 1383 1, 2, 2, 3, 3, 1, 4, 4, 3, 5, 1384 8, 3, 1, 2, 1, 2, 6, 5, 6, 7, 1385 7, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1386 4, 4, 3, 8, 3, 1, 1, 2, 1, 1, 1387 2, 3, 2, 3, 2, 3, 3, 2, 4, 3, 1388 2, 3, 2, 4, 3, 2, 6, 6, 6, 7, 1389 1, 2, 1, 1, 1, 2, 3, 2, 3, 2, 1390 3, 3, 4, 2, 3, 4, 2, 5, 5, 6, 1391 6, 0, 1, 0, 2 1392 1392 }; 1393 1393 … … 1397 1397 static const yytype_uint16 yydefact[] = 1398 1398 { 1399 29 5, 295, 316, 314, 317, 315, 318, 319, 301, 303,1400 30 2, 0, 304, 330, 322, 327, 325, 326, 324, 323,1401 32 8, 329, 334, 331, 332, 333, 550, 550, 550, 0,1402 0, 0, 29 5, 221, 305, 320, 321, 7, 361, 0,1403 8, 14, 15, 65, 0, 2, 63, 64, 568, 9,1404 2 95, 528, 526, 248, 3, 456, 3, 261, 0, 3,1405 3, 3, 249, 3, 0, 0, 0, 296, 297, 299,1406 295, 308, 311, 313, 342, 287, 335, 340, 288, 350,1407 289, 357, 354, 364, 0, 0, 365, 290, 476, 480,1408 3, 3, 0, 2, 522, 527, 532, 300, 0, 0,1409 550, 580, 550, 2, 591, 592, 593, 295, 0, 734,1410 735, 0, 12, 0, 13, 295, 271, 272, 0, 296,1411 29 1, 292, 293, 294, 529, 306, 394, 551, 552, 372,1412 373, 12, 447, 448, 11, 443, 446, 0, 506, 501,1413 492, 447, 448, 0, 0, 531, 222, 0, 295, 0,1414 0, 0, 0, 0, 0, 0, 0, 295, 295, 2,1415 0, 736, 296, 585, 597, 740, 733, 731, 738, 0,1416 0, 0, 255, 2, 0, 535, 441, 442, 440, 0,1417 0, 0, 0, 550, 0, 637, 638, 0, 0, 548,1418 54 4, 550, 565, 550, 550, 546, 2, 545, 550, 604,1419 550, 550, 607, 0, 0, 0, 295, 295, 314, 362,1420 2, 295, 262, 298, 309, 343, 355, 481, 0,2,1421 0, 456, 263, 296, 336, 351, 358, 477, 0, 2,1422 0, 312, 337, 344, 345, 0, 352, 356, 359, 363,1423 448, 295, 295, 367, 371, 0, 396, 478, 482, 0,1424 0, 0, 1, 295, 2, 533, 579, 581, 295, 2,1425 744, 296, 747, 548, 548, 0, 296, 0, 0, 274,1426 550, 546, 2, 295, 0, 0, 295, 553, 2, 504,1427 2, 557, 0, 0, 0, 0, 0, 0, 18, 58,1428 4, 5, 6, 16, 0, 0, 295, 2, 66, 67,1429 6 8, 69, 48, 19, 49, 22, 47, 70, 295, 0,1430 7 3, 77, 80, 83, 88, 91, 93, 95, 97, 99,1431 10 1, 106, 498, 754, 454, 497, 0, 452, 453, 0,1432 5 69, 584, 587, 590, 596, 599, 602, 361, 0, 2,1433 742, 0, 295, 745, 2, 63, 295, 3, 428, 0,1434 436, 296, 295, 308, 335, 288, 350, 357, 3,3,1435 4 10, 414, 424, 429, 476, 295, 430, 709, 710, 295,1436 431, 433, 295, 2, 586, 598, 732, 2, 2, 250,1437 2, 461, 0, 459, 458, 457, 142, 2, 2, 252,1438 2, 2, 251, 2, 282, 2, 283, 0, 281, 0,1439 0, 0, 0, 0, 0, 0, 0, 0, 570, 609,1440 0, 456, 2, 564, 573, 663, 566, 567, 536, 295,1441 2, 603, 612, 605, 606, 0, 277, 295, 295, 341,1442 29 6, 0, 296, 0, 295, 737, 741, 739, 537, 295,1443 548, 256, 264, 310, 0, 2, 538, 295, 502, 338,1444 3 39, 284, 353, 360, 0, 295, 2, 386, 295, 374,1445 0, 0, 380, 731, 0, 752, 401, 0, 479, 503,1446 253, 254, 523, 295, 438, 0, 295, 238, 0, 2,1447 2 40, 0, 296, 0, 258, 2, 259, 279, 0, 0,1448 2, 295, 548, 295, 489, 491, 490, 0, 0, 754,1449 0, 29 5, 0, 295, 493, 295, 563, 561, 562, 560,1450 0, 555, 558, 0, 0, 295, 55, 295, 70, 50,1451 29 5, 61, 295, 295, 53, 54, 2, 128, 0, 0,1452 450, 0, 449, 112, 295, 17, 0, 29, 30, 35,1453 2, 0, 35, 118, 119, 120, 121, 122, 123, 124,1454 12 5, 126, 127, 0, 0, 51, 52, 0, 0, 0,1399 294, 294, 315, 313, 316, 314, 317, 318, 300, 302, 1400 301, 0, 303, 329, 321, 326, 324, 325, 323, 322, 1401 327, 328, 333, 330, 331, 332, 549, 549, 549, 0, 1402 0, 0, 294, 220, 304, 319, 320, 7, 360, 0, 1403 8, 14, 15, 0, 2, 294, 567, 9, 527, 525, 1404 247, 3, 455, 3, 260, 0, 3, 3, 3, 248, 1405 3, 0, 0, 0, 295, 296, 298, 294, 307, 310, 1406 312, 341, 286, 334, 339, 287, 349, 288, 356, 353, 1407 363, 0, 0, 364, 289, 475, 479, 3, 3, 0, 1408 2, 521, 526, 531, 299, 0, 0, 549, 579, 549, 1409 2, 590, 591, 592, 294, 0, 733, 734, 0, 12, 1410 294, 0, 13, 270, 271, 0, 295, 290, 291, 292, 1411 293, 528, 305, 393, 550, 551, 371, 372, 12, 446, 1412 447, 11, 442, 445, 0, 505, 500, 491, 446, 447, 1413 0, 0, 530, 221, 0, 294, 0, 0, 0, 0, 1414 0, 0, 0, 0, 294, 294, 2, 0, 735, 295, 1415 584, 596, 739, 732, 730, 737, 0, 0, 0, 254, 1416 2, 0, 534, 440, 441, 439, 0, 0, 0, 0, 1417 549, 0, 636, 637, 0, 0, 547, 543, 549, 564, 1418 549, 549, 544, 2, 545, 549, 603, 549, 549, 606, 1419 0, 0, 0, 294, 294, 313, 361, 2, 294, 261, 1420 297, 308, 342, 354, 480, 0, 2, 0, 455, 262, 1421 295, 335, 350, 357, 476, 0, 2, 0, 311, 336, 1422 343, 344, 0, 351, 355, 358, 362, 447, 294, 294, 1423 366, 370, 0, 395, 477, 481, 0, 0, 0, 1, 1424 294, 2, 532, 578, 580, 294, 2, 743, 295, 746, 1425 547, 547, 295, 0, 0, 0, 273, 549, 544, 2, 1426 294, 0, 0, 294, 552, 2, 503, 2, 556, 0, 1427 0, 0, 0, 0, 0, 18, 59, 4, 5, 6, 1428 16, 0, 0, 0, 294, 2, 0, 294, 65, 66, 1429 67, 68, 48, 19, 49, 22, 47, 69, 0, 72, 1430 76, 79, 82, 87, 90, 92, 94, 96, 98, 100, 1431 105, 497, 753, 453, 496, 0, 451, 452, 0, 568, 1432 583, 586, 589, 595, 598, 601, 360, 0, 2, 741, 1433 0, 294, 744, 2, 294, 3, 427, 0, 435, 295, 1434 294, 307, 334, 287, 349, 356, 3, 3, 409, 413, 1435 423, 428, 475, 294, 429, 708, 709, 294, 430, 432, 1436 294, 2, 585, 597, 731, 2, 2, 249, 2, 460, 1437 0, 458, 457, 456, 141, 2, 2, 251, 2, 2, 1438 250, 2, 281, 2, 282, 0, 280, 0, 0, 0, 1439 0, 0, 0, 0, 0, 0, 569, 608, 0, 455, 1440 2, 563, 572, 662, 565, 566, 535, 294, 2, 602, 1441 611, 604, 605, 0, 276, 294, 294, 340, 295, 0, 1442 295, 0, 294, 736, 740, 738, 536, 294, 547, 255, 1443 263, 309, 0, 2, 537, 294, 501, 337, 338, 283, 1444 352, 359, 0, 294, 2, 385, 294, 373, 0, 0, 1445 379, 730, 0, 751, 400, 0, 478, 502, 252, 253, 1446 522, 294, 437, 0, 294, 237, 0, 2, 239, 0, 1447 295, 0, 257, 2, 258, 278, 0, 0, 2, 294, 1448 547, 294, 488, 490, 489, 0, 0, 753, 0, 294, 1449 0, 294, 492, 294, 562, 560, 561, 559, 0, 554, 1450 557, 0, 0, 294, 56, 294, 69, 52, 294, 62, 1451 294, 294, 50, 51, 64, 2, 127, 0, 0, 449, 1452 0, 448, 111, 294, 54, 55, 17, 0, 29, 30, 1453 35, 2, 0, 35, 117, 118, 119, 120, 121, 122, 1454 123, 124, 125, 126, 0, 0, 53, 0, 0, 0, 1455 1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1456 0, 0, 0, 0, 0, 0, 0, 109, 2, 649, 1457 455, 646, 550, 550, 654, 483, 295, 2, 588, 589, 1458 0, 600, 601, 0, 2, 743, 746, 112, 295, 0, 1459 2, 711, 296, 715, 706, 707, 713, 0, 2, 2, 1460 671, 550, 754, 620, 550, 550, 754, 550, 634, 550, 1461 550, 685, 437, 668, 550, 550, 676, 683, 295, 432, 1462 296, 0, 0, 295, 721, 296, 726, 754, 718, 295, 1463 723, 754, 295, 295, 295, 0, 112, 0, 18, 5, 1464 2, 0, 19, 0, 462, 752, 0, 0, 468, 242, 1465 0, 295, 0, 0, 0, 548, 572, 576, 578, 608, 1466 611, 615, 618, 571, 610, 0, 285, 661, 0, 295, 1467 278, 0, 0, 0, 0, 276, 2, 0, 260, 539, 1468 295, 0, 0, 0, 0, 295, 295, 0, 0, 695, 1469 384, 387, 391, 550, 391, 700, 390, 692, 550, 550, 1470 366, 375, 383, 376, 550, 378, 381, 295, 753, 0, 1471 0, 399, 0, 296, 3, 417, 3, 421, 420, 594, 1472 0, 534, 295, 63, 3, 295, 436, 296, 3, 430, 1473 431, 2, 0, 0, 0, 488, 307, 295, 484, 486, 1474 3, 2, 2, 0, 505, 3, 0, 557, 130, 0, 1475 0, 223, 0, 0, 0, 2, 0, 0, 36, 0, 1476 0, 112, 295, 20, 0, 21, 0, 695, 451, 0, 1477 110, 3, 2, 27, 2, 0, 33, 0, 2, 25, 1478 0, 107, 108, 74, 75, 76, 78, 79, 81, 82, 1479 86, 87, 84, 85, 89, 90, 92, 94, 96, 98, 1480 100, 0, 0, 755, 295, 0, 0, 0, 650, 651, 1481 647, 648, 500, 499, 295, 0, 295, 717, 295, 722, 1482 296, 295, 665, 295, 295, 708, 664, 2, 295, 0, 1483 0, 0, 0, 0, 0, 0, 0, 686, 0, 672, 1484 623, 639, 673, 2, 619, 626, 434, 621, 622, 435, 1485 2, 633, 642, 635, 636, 669, 670, 684, 712, 716, 1486 714, 754, 269, 2, 748, 2, 425, 720, 725, 426, 1487 0, 404, 3, 3, 3, 3, 456, 3, 0, 2, 1488 471, 467, 753, 0, 463, 470, 2, 466, 469, 0, 1489 295, 243, 265, 3, 273, 275, 0, 456, 2, 574, 1490 575, 2, 613, 614, 0, 662, 540, 3, 347, 346, 1491 349, 348, 295, 541, 0, 542, 295, 377, 379, 2, 1492 0, 0, 0, 0, 105, 393, 696, 697, 388, 392, 1493 389, 693, 694, 382, 386, 295, 401, 395, 402, 752, 1494 0, 0, 439, 241, 0, 0, 3, 2, 671, 432, 1495 0, 530, 0, 754, 492, 0, 295, 295, 295, 0, 1496 554, 556, 131, 0, 0, 216, 0, 0, 0, 224, 1497 225, 56, 0, 62, 295, 0, 60, 59, 0, 129, 1498 696, 461, 71, 72, 111, 116, 3, 110, 0, 0, 1499 0, 24, 35, 3, 0, 32, 103, 0, 3, 653, 1500 657, 660, 652, 3, 595, 3, 719, 724, 2, 63, 1501 295, 3, 3, 296, 0, 3, 625, 629, 632, 641, 1502 675, 679, 682, 295, 3, 624, 640, 674, 295, 295, 1503 427, 295, 295, 749, 0, 0, 0, 0, 257, 0, 1504 105, 0, 3, 3, 0, 464, 0, 460, 0, 0, 1505 246, 295, 0, 0, 130, 0, 0, 0, 0, 0, 1506 130, 0, 0, 110, 110, 18, 2, 0, 0, 3, 1507 132, 133, 2, 144, 134, 135, 136, 137, 138, 139, 1508 146, 148, 0, 0, 0, 286, 295, 295, 550, 0, 1509 543, 295, 112, 699, 703, 705, 698, 385, 369, 400, 1510 0, 582, 2, 667, 666, 0, 672, 2, 485, 487, 1511 507, 3, 515, 516, 0, 2, 511, 3, 3, 0, 1512 0, 559, 223, 0, 0, 0, 223, 0, 0, 3, 1513 37, 752, 110, 0, 3, 664, 42, 3, 40, 3, 1514 34, 0, 3, 102, 104, 0, 2, 655, 656, 0, 1515 0, 295, 0, 0, 0, 3, 641, 0, 2, 627, 1516 628, 2, 643, 2, 677, 678, 0, 0, 63, 0, 1517 3, 3, 3, 3, 412, 411, 415, 2, 2, 751, 1518 750, 113, 0, 0, 0, 0, 3, 465, 3, 0, 1519 244, 147, 3, 296, 295, 0, 0, 0, 0, 2, 1520 0, 192, 0, 190, 0, 0, 0, 0, 0, 0, 1521 0, 550, 112, 0, 152, 149, 295, 0, 0, 268, 1522 280, 3, 3, 549, 616, 370, 2, 701, 702, 398, 1523 295, 267, 295, 0, 518, 495, 295, 0, 0, 494, 1524 509, 0, 0, 0, 217, 0, 226, 57, 110, 0, 1525 0, 117, 114, 0, 0, 0, 0, 0, 0, 23, 1526 0, 658, 295, 583, 266, 727, 728, 729, 0, 680, 1527 295, 295, 295, 3, 3, 0, 688, 0, 0, 0, 1528 0, 295, 295, 3, 547, 472, 473, 0, 0, 247, 1529 296, 0, 0, 0, 0, 295, 193, 191, 188, 0, 1530 194, 0, 0, 0, 0, 198, 201, 199, 195, 0, 1531 196, 130, 35, 145, 143, 245, 0, 0, 295, 419, 1532 423, 422, 0, 512, 2, 513, 2, 514, 508, 295, 1533 229, 0, 227, 0, 229, 3, 664, 31, 115, 2, 1534 45, 2, 43, 41, 28, 113, 26, 3, 730, 3, 1535 3, 3, 0, 0, 687, 689, 630, 644, 270, 2, 1536 409, 3, 408, 0, 475, 472, 130, 0, 0, 130, 1537 3, 0, 130, 189, 0, 2, 2, 210, 200, 0, 1538 0, 0, 141, 0, 577, 617, 3, 2, 0, 0, 1539 2, 230, 0, 0, 218, 0, 0, 0, 0, 0, 1540 0, 0, 0, 0, 690, 691, 295, 0, 474, 153, 1541 0, 0, 2, 166, 130, 155, 0, 183, 0, 130, 1542 0, 2, 157, 0, 2, 0, 2, 2, 2, 197, 1543 32, 0, 295, 517, 519, 510, 0, 0, 0, 0, 1544 115, 38, 3, 3, 659, 631, 645, 681, 413, 130, 1545 159, 162, 0, 161, 165, 3, 168, 167, 0, 130, 1546 185, 130, 3, 0, 295, 0, 295, 0, 2, 0, 1547 2, 140, 704, 2, 231, 232, 0, 228, 219, 0, 1548 0, 0, 154, 0, 0, 164, 234, 169, 2, 236, 1549 184, 0, 187, 173, 202, 3, 211, 215, 204, 3, 1550 0, 295, 0, 295, 0, 0, 0, 39, 46, 44, 1551 160, 163, 130, 0, 170, 295, 130, 130, 0, 174, 1552 0, 0, 695, 212, 213, 214, 0, 203, 3, 205, 1553 3, 295, 220, 233, 150, 171, 156, 130, 237, 186, 1554 181, 179, 175, 158, 130, 0, 696, 0, 0, 0, 1555 0, 151, 172, 182, 176, 180, 179, 177, 3, 3, 1556 0, 0, 496, 178, 206, 208, 3, 3, 207, 209 1456 0, 0, 0, 0, 0, 0, 0, 108, 2, 648, 1457 454, 645, 549, 549, 653, 482, 294, 2, 587, 588, 1458 0, 599, 600, 0, 2, 742, 745, 111, 294, 2, 1459 294, 0, 710, 295, 714, 705, 706, 712, 0, 2, 1460 2, 670, 549, 753, 619, 549, 549, 753, 549, 633, 1461 549, 549, 684, 436, 667, 549, 549, 675, 682, 294, 1462 431, 295, 0, 0, 294, 720, 295, 725, 753, 717, 1463 294, 722, 753, 294, 294, 294, 0, 111, 0, 18, 1464 5, 2, 0, 19, 0, 461, 751, 0, 0, 467, 1465 241, 0, 294, 0, 0, 0, 547, 571, 575, 577, 1466 607, 610, 614, 617, 570, 609, 0, 284, 660, 0, 1467 294, 277, 0, 0, 0, 0, 275, 2, 0, 259, 1468 538, 294, 0, 0, 0, 0, 294, 294, 0, 0, 1469 694, 383, 386, 390, 549, 390, 699, 389, 691, 549, 1470 549, 365, 374, 382, 375, 549, 377, 380, 294, 752, 1471 0, 0, 398, 0, 295, 3, 416, 3, 420, 419, 1472 593, 0, 533, 294, 3, 3, 294, 435, 295, 3, 1473 429, 430, 2, 0, 0, 0, 487, 306, 294, 483, 1474 485, 3, 2, 2, 0, 504, 3, 0, 556, 129, 1475 0, 0, 222, 0, 0, 0, 2, 0, 0, 36, 1476 0, 0, 111, 294, 20, 0, 21, 0, 694, 450, 1477 0, 109, 3, 2, 27, 2, 0, 33, 0, 2, 1478 25, 0, 106, 107, 73, 74, 75, 77, 78, 80, 1479 81, 85, 86, 83, 84, 88, 89, 91, 93, 95, 1480 97, 99, 0, 0, 754, 294, 0, 0, 0, 649, 1481 650, 646, 647, 499, 498, 294, 0, 3, 294, 716, 1482 294, 721, 295, 294, 294, 294, 664, 707, 663, 2, 1483 294, 0, 0, 0, 0, 0, 0, 0, 0, 685, 1484 0, 671, 622, 638, 672, 2, 618, 625, 433, 620, 1485 621, 434, 2, 632, 641, 634, 635, 668, 669, 683, 1486 711, 715, 713, 753, 268, 2, 747, 2, 424, 719, 1487 724, 425, 0, 403, 3, 3, 3, 3, 455, 3, 1488 0, 2, 470, 466, 752, 0, 462, 469, 2, 465, 1489 468, 0, 294, 242, 264, 3, 272, 274, 0, 455, 1490 2, 573, 574, 2, 612, 613, 0, 661, 539, 3, 1491 346, 345, 348, 347, 294, 540, 0, 541, 294, 376, 1492 378, 2, 0, 0, 0, 0, 104, 392, 695, 696, 1493 387, 391, 388, 692, 693, 381, 385, 294, 400, 394, 1494 401, 751, 0, 0, 438, 240, 0, 0, 3, 2, 1495 670, 431, 0, 529, 0, 753, 491, 0, 294, 294, 1496 294, 0, 553, 555, 130, 0, 0, 215, 0, 0, 1497 0, 223, 224, 57, 0, 63, 294, 0, 61, 60, 1498 0, 128, 695, 460, 70, 71, 110, 115, 3, 109, 1499 0, 0, 0, 24, 35, 3, 0, 32, 102, 0, 1500 3, 652, 656, 659, 651, 3, 594, 3, 718, 723, 1501 2, 294, 3, 3, 295, 0, 3, 624, 628, 631, 1502 640, 674, 678, 681, 294, 3, 623, 639, 673, 294, 1503 294, 426, 294, 294, 748, 0, 0, 0, 0, 256, 1504 0, 104, 0, 3, 3, 0, 463, 0, 459, 0, 1505 0, 245, 294, 0, 0, 129, 0, 0, 0, 0, 1506 0, 129, 0, 0, 109, 109, 2, 0, 0, 0, 1507 3, 131, 132, 2, 143, 133, 134, 135, 136, 137, 1508 138, 145, 147, 0, 0, 0, 285, 294, 294, 549, 1509 0, 542, 294, 111, 698, 702, 704, 697, 384, 368, 1510 399, 0, 581, 2, 666, 665, 0, 671, 2, 484, 1511 486, 506, 3, 514, 515, 0, 2, 510, 3, 3, 1512 0, 0, 558, 222, 0, 0, 0, 222, 0, 0, 1513 3, 37, 751, 109, 0, 3, 663, 42, 3, 40, 1514 3, 34, 0, 3, 101, 103, 0, 2, 654, 655, 1515 0, 0, 294, 0, 0, 0, 3, 640, 0, 2, 1516 626, 627, 2, 642, 2, 676, 677, 0, 0, 3, 1517 0, 3, 3, 3, 3, 411, 410, 414, 2, 2, 1518 750, 749, 112, 0, 0, 0, 0, 3, 464, 3, 1519 0, 243, 146, 3, 295, 294, 0, 0, 0, 0, 1520 2, 191, 0, 189, 0, 0, 0, 0, 0, 0, 1521 0, 0, 111, 0, 549, 151, 148, 294, 0, 0, 1522 267, 279, 3, 3, 548, 615, 369, 2, 700, 701, 1523 397, 294, 266, 294, 0, 517, 494, 294, 0, 0, 1524 493, 508, 0, 0, 0, 216, 0, 225, 58, 109, 1525 0, 0, 116, 113, 0, 0, 0, 0, 0, 0, 1526 23, 0, 657, 294, 582, 265, 726, 727, 728, 0, 1527 679, 294, 294, 294, 3, 3, 0, 687, 0, 0, 1528 0, 0, 294, 294, 3, 546, 471, 472, 0, 0, 1529 246, 295, 0, 0, 0, 0, 294, 192, 190, 0, 1530 187, 193, 0, 0, 0, 0, 197, 200, 198, 194, 1531 0, 195, 35, 129, 144, 142, 244, 0, 0, 294, 1532 418, 422, 421, 0, 511, 2, 512, 2, 513, 507, 1533 294, 228, 0, 226, 0, 228, 3, 663, 31, 114, 1534 2, 45, 2, 43, 41, 28, 112, 26, 3, 729, 1535 3, 3, 3, 0, 0, 686, 688, 629, 643, 269, 1536 2, 408, 3, 407, 0, 474, 471, 129, 0, 0, 1537 129, 3, 0, 129, 188, 0, 2, 2, 209, 199, 1538 0, 0, 0, 0, 140, 576, 616, 3, 2, 0, 1539 0, 2, 229, 0, 0, 217, 0, 0, 0, 0, 1540 0, 0, 0, 0, 0, 689, 690, 294, 0, 473, 1541 152, 0, 0, 2, 165, 129, 154, 0, 182, 0, 1542 129, 0, 2, 156, 0, 2, 0, 2, 2, 2, 1543 196, 32, 0, 294, 516, 518, 509, 0, 0, 0, 1544 0, 114, 38, 3, 3, 658, 630, 644, 680, 412, 1545 129, 158, 161, 0, 160, 164, 3, 167, 166, 0, 1546 129, 184, 129, 3, 0, 294, 0, 294, 0, 2, 1547 0, 2, 139, 703, 2, 230, 231, 0, 227, 218, 1548 0, 0, 0, 153, 0, 0, 163, 233, 168, 2, 1549 235, 183, 0, 186, 172, 201, 3, 210, 214, 203, 1550 3, 0, 294, 0, 294, 0, 0, 0, 39, 46, 1551 44, 159, 162, 129, 0, 169, 294, 129, 129, 0, 1552 173, 0, 0, 694, 211, 212, 213, 0, 202, 3, 1553 204, 3, 294, 219, 232, 149, 170, 155, 129, 236, 1554 185, 180, 178, 174, 157, 129, 0, 695, 0, 0, 1555 0, 0, 150, 171, 181, 175, 179, 178, 176, 3, 1556 3, 0, 0, 495, 177, 205, 207, 3, 3, 206, 1557 208 1557 1558 }; 1558 1559 … … 1560 1561 static const yytype_int16 yydefgoto[] = 1561 1562 { 1562 -1, 838, 477, 302, 48, 135, 136, 303, 304, 305, 1563 306, 785, 786, 1147, 1148, 307, 382, 309, 310, 311, 1564 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 1565 1051, 527, 995, 323, 996, 554, 972, 1078, 1544, 1080, 1566 1081, 1082, 1083, 1545, 1084, 1085, 1461, 1462, 1423, 1424, 1567 1425, 1523, 1524, 1528, 1529, 1564, 1565, 1086, 1381, 1087, 1568 1088, 1315, 1316, 1317, 1505, 1089, 147, 978, 979, 980, 1569 1402, 1486, 1497, 1498, 478, 479, 900, 901, 1059, 52, 1570 53, 54, 55, 56, 348, 160, 59, 60, 61, 62, 1571 63, 350, 65, 66, 266, 68, 69, 276, 352, 353, 1572 72, 73, 74, 75, 120, 77, 206, 355, 121, 80, 1573 122, 82, 83, 464, 84, 458, 459, 460, 461, 700, 1574 938, 701, 85, 86, 467, 465, 721, 880, 881, 358, 1575 359, 724, 725, 726, 360, 361, 362, 363, 475, 341, 1576 137, 138, 531, 325, 172, 654, 655, 656, 657, 658, 1577 87, 123, 89, 498, 499, 964, 500, 279, 504, 326, 1578 90, 139, 140, 91, 1339, 1125, 1126, 1127, 1128, 92, 1579 93, 742, 94, 275, 95, 96, 189, 1053, 688, 413, 1580 127, 97, 510, 511, 512, 190, 270, 192, 193, 194, 1581 271, 100, 101, 102, 103, 104, 105, 106, 197, 198, 1582 199, 200, 201, 850, 613, 614, 615, 616, 202, 618, 1583 619, 620, 580, 581, 582, 583, 705, 107, 622, 623, 1584 624, 625, 626, 627, 937, 707, 708, 709, 603, 366, 1585 367, 368, 369, 327, 166, 109, 110, 111, 371, 719, 1586 577 1563 -1, 840, 475, 302, 46, 132, 133, 303, 304, 305, 1564 306, 786, 787, 1148, 1149, 307, 308, 309, 310, 311, 1565 312, 313, 314, 315, 316, 317, 318, 319, 320, 1052, 1566 526, 997, 322, 998, 555, 974, 1079, 1545, 1081, 1082, 1567 1083, 1084, 1546, 1085, 1086, 1462, 1463, 1424, 1425, 1426, 1568 1524, 1525, 1529, 1530, 1565, 1566, 1087, 1382, 1088, 1089, 1569 1316, 1317, 1318, 1506, 1090, 144, 980, 981, 982, 1403, 1570 1487, 1498, 1499, 476, 477, 902, 903, 1060, 49, 50, 1571 51, 52, 53, 346, 157, 56, 57, 58, 59, 60, 1572 348, 62, 63, 262, 65, 66, 273, 350, 351, 69, 1573 70, 71, 72, 117, 74, 203, 353, 118, 77, 119, 1574 79, 80, 462, 81, 456, 457, 458, 459, 701, 940, 1575 702, 82, 83, 465, 463, 722, 882, 883, 356, 357, 1576 725, 726, 727, 358, 359, 360, 361, 473, 340, 134, 1577 135, 530, 324, 169, 655, 656, 657, 658, 659, 84, 1578 120, 86, 496, 497, 966, 498, 276, 502, 325, 87, 1579 136, 137, 88, 1340, 1126, 1127, 1128, 1129, 89, 90, 1580 743, 91, 272, 92, 93, 186, 1054, 689, 411, 124, 1581 94, 508, 509, 510, 187, 267, 189, 190, 191, 268, 1582 97, 98, 99, 100, 101, 102, 103, 194, 195, 196, 1583 197, 198, 852, 614, 615, 616, 617, 199, 619, 620, 1584 621, 580, 581, 582, 583, 706, 104, 623, 624, 625, 1585 626, 627, 628, 939, 708, 709, 710, 604, 364, 365, 1586 366, 367, 326, 163, 106, 107, 108, 369, 720, 577 1587 1587 }; 1588 1588 1589 1589 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1590 1590 STATE-NUM. */ 1591 #define YYPACT_NINF -13 551591 #define YYPACT_NINF -1332 1592 1592 static const yytype_int16 yypact[] = 1593 1593 { 1594 6526, 10132, -1355, -28, -1355, -1355, -1355, -1355, -1355, -1355, 1595 -1355, 11, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1596 -1355, -1355, -1355, -1355, -1355, -1355, 124, 124, 124, 1122, 1597 1178, 105, 7752, 206, -1355, -1355, -1355, -1355, -1355, 125, 1598 -1355, -1355, -1355, -1355, 698, 190, -1355, -1355, -1355, -1355, 1599 9742, -1355, -1355, -1355, -1355, 293, 199, -1355, 1161, -1355, 1600 -1355, -1355, -1355, 216, 2006, 341, 106, 7869, -1355, -1355, 1601 9852, 758, -1355, -1355, -1355, 704, 346, 7545, 680, 713, 1602 704, 967, -1355, -1355, 498, 800, -1355, 704, 1060, -1355, 1603 248, -1355, 421, 449, -1355, -1355, -1355, -1355, 290, 199, 1604 124, -1355, 124, -1355, -1355, -1355, -1355, 10443, 1161, -1355, 1605 -1355, 1161, -1355, 279, -1355, 10553, -1355, -1355, 2175, 10583, 1606 -1355, 774, 774, 774, -1355, -1355, -1355, 124, -1355, -1355, 1607 -1355, 350, 392, 395, -1355, -1355, -1355, 403, -1355, -1355, 1608 -1355, -1355, -1355, 439, 468, -1355, -1355, 66, 9208, 3295, 1609 571, 369, 448, 481, 484, 491, 516, 10022, 7154, 536, 1610 559, -1355, 9882, -1355, -1355, -1355, -1355, 562, -1355, 184, 1611 3734, 3734, -1355, 579, 187, -1355, -1355, -1355, -1355, 597, 1612 328, 353, 423, 124, 608, -1355, -1355, 2006, 2873, 686, 1613 -1355, 61, -1355, 124, 124, 199, -1355, -1355, 96, -1355, 1614 124, 124, -1355, 3264, 646, 699, 774, 7305, -1355, -1355, 1615 733, 9742, -1355, -1355, 704, -1355, -1355, -1355, 199, -1355, 1616 1161, 293, -1355, 8102, -1355, 774, 774, 774, 199, -1355, 1617 1122, -1355, 5636, -1355, -1355, 724, 774, -1355, 774, -1355, 1618 125, 9208, 10303, 751, -1355, 1178, 766, 774, -1355, 1122, 1619 767, 775, -1355, 7752, 512, -1355, -1355, -1355, 9671, -1355, 1620 -1355, 10973, -1355, 686, 134, 4776, 10583, 2175, 3264, -1355, 1621 153, -1355, -1355, 10553, 1161, 778, 7900, -1355, -1355, 361, 1622 -1355, 11792, 829, 859, 4180, 841, 11595, 11653, -1355, 852, 1623 -1355, -1355, -1355, -1355, 11672, 11672, 8980, 854, -1355, -1355, 1624 -1355, -1355, -1355, -1355, 912, -1355, 878, 2284, 9322, 11595, 1625 -1355, 629, 677, 734, 265, 760, 882, 884, 890, 928, 1626 13, -1355, -1355, 895, 936, -1355, 57, -1355, -1355, 3295, 1627 -1355, -1355, 410, 929, -1355, 621, 929, 953, 125, -1355, 1628 -1355, 960, 10443, -1355, 963, 971, 9436, -1355, -1355, 1106, 1629 1778, 8566, 7305, 704, -1355, 704, 774, 774, -1355, -1355, 1630 -1355, -1355, -1355, -1355, 774, 10443, 1161, -1355, -1355, 10693, 1631 1309, -1355, 10413, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1632 998, 3508, 11595, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1633 -1355, -1355, -1355, -1355, -1355, -1355, -1355, 2175, -1355, 793, 1634 1004, 1008, 1011, 926, 1015, 1019, 1023, 2873, -1355, -1355, 1635 1032, 293, 1065, -1355, -1355, 1068, -1355, -1355, -1355, 9671, 1636 -1355, -1355, -1355, -1355, -1355, 3264, -1355, 9208, 9208, -1355, 1637 774, 2175, 7425, 1161, 8682, -1355, -1355, -1355, -1355, 9671, 1638 134, -1355, -1355, 704, 199, -1355, -1355, 9671, -1355, 7188, 1639 -1355, -1355, 774, 774, 550, 10723, 1071, 1646, 4966, -1355, 1640 435, 455, 1178, -1355, 1077, 1033, 1061, 1081, 774, -1355, 1641 -1355, -1355, -1355, 11011, -1355, 705, 7065, -1355, 199, 1085, 1642 -1355, 2175, 11874, 6076, -1355, -1355, -1355, -1355, 939, 3264, 1643 -1355, 8798, 686, 7635, -1355, -1355, -1355, 1254, 709, 895, 1644 1178, 7900, 685, 10553, -1355, 7900, -1355, -1355, -1355, -1355, 1645 769, -1355, 1093, 859, 494, 8980, -1355, 10723, -1355, -1355, 1646 8980, -1355, 9094, 8980, -1355, -1355, 1096, -1355, 781, 1103, 1647 1017, 1104, -1355, 3922, 6360, -1355, 553, -1355, -1355, 11518, 1648 -1355, 618, 11518, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1649 -1355, -1355, -1355, 4776, 4776, -1355, -1355, 11595, 11595, 11595, 1650 11595, 11595, 11595, 11595, 11595, 11595, 11595, 11595, 11595, 11595, 1651 11595, 11595, 11595, 11595, 11595, 3966, 4776, -1355, 936, 1162, 1652 -1355, -1355, 124, 124, -1355, -1355, 9208, -1355, -1355, 1068, 1653 512, -1355, 1068, 11576, -1355, -1355, -1355, 4432, 6360, 1105, 1654 1107, -1355, 10583, -1355, -1355, 562, -1355, 1108, 1721, 1109, 1655 2038, 284, 895, -1355, 124, 124, 895, 308, -1355, 124, 1656 124, 1068, -1355, -1355, 124, 124, -1355, 929, 10833, 1161, 1657 12019, 503, 537, 10833, -1355, 10973, -1355, 895, -1355, 10443, 1658 -1355, 239, 8218, 8218, 8218, 1161, -1355, 4062, 1099, 177, 1659 998, 367, 1110, 1113, -1355, 1118, 3734, 565, -1355, 1194, 1660 1161, 8218, 512, 2175, 512, 686, 727, 929, -1355, -1355, 1661 752, 929, -1355, -1355, -1355, 859, -1355, 929, 199, 11011, 1662 -1355, 801, 1115, 813, 1130, -1355, 1129, 199, -1355, -1355, 1663 9671, 199, 1133, 506, 530, 10693, 7274, 1915, 11595, 2471, 1664 -1355, -1355, 1126, 82, 1126, -1355, -1355, -1355, 124, 124, 1665 -1355, -1355, 1178, -1355, 124, -1355, -1355, 10303, 1178, 1134, 1666 11595, -1355, 1178, 12019, -1355, -1355, 1138, -1355, -1355, -1355, 1667 512, -1355, 11947, 971, -1355, 8218, 1021, 8566, -1355, -1355, 1668 562, 1142, 1143, 1254, 3424, -1355, -1355, 7900, -1355, -1355, 1669 1147, -1355, -1355, 1155, -1355, 1147, 1157, 11792, 4776, 34, 1670 1136, 168, 1159, 1156, 1164, 854, 1160, 1169, -1355, 1172, 1671 1173, 5598, 6914, -1355, 4776, -1355, 1017, 1789, -1355, 5215, 1672 4776, 1168, -1355, -1355, 998, 814, -1355, 4776, -1355, -1355, 1673 893, -1355, -1355, -1355, -1355, -1355, 629, 629, 677, 677, 1674 734, 734, 734, 734, 265, 265, 760, 882, 884, 890, 1675 928, 11595, 927, -1355, 11011, 1175, 1177, 1180, 1162, -1355, 1676 -1355, -1355, -1355, -1355, 11011, 818, 8218, -1355, 10443, -1355, 1677 7394, 9550, -1355, 10413, 7154, -1355, -1355, 1721, 11011, 969, 1678 1183, 1185, 1187, 1189, 1191, 1192, 1193, -1355, 4666, 2038, 1679 -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1680 -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1068, -1355, -1355, 1681 -1355, 895, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1682 1199, -1355, 1202, 1203, -1355, -1355, 293, 1168, 4062, -1355, 1683 -1355, -1355, 3508, 1200, -1355, -1355, -1355, -1355, -1355, 1178, 1684 6657, 1259, -1355, -1355, -1355, -1355, 1186, 293, -1355, -1355, 1685 1068, -1355, -1355, 1068, 73, 1068, -1355, -1355, -1355, -1355, 1686 -1355, -1355, 9992, -1355, 199, -1355, 10303, -1355, -1355, 1204, 1687 942, 1208, 1209, 1211, -1355, -1355, 2471, -1355, -1355, -1355, 1688 -1355, -1355, -1355, -1355, 1646, 10162, 1061, -1355, -1355, 1033, 1689 1213, 1188, -1355, -1355, 1212, 1215, -1355, 1021, 1927, -1355, 1690 567, -1355, 3424, 895, -1355, 1219, 7900, 10863, 9208, 1221, 1691 -1355, -1355, 1216, 1223, 1217, -1355, 11595, 122, 20, 1224, 1692 -1355, 1228, 512, 1228, 6360, 4776, -1355, -1355, 1228, -1355, 1693 1789, 3508, -1355, -1355, -1355, -1355, 1229, 4776, 1237, 512, 1694 4062, -1355, 11518, -1355, 512, -1355, -1355, 4776, -1355, 759, 1695 929, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 998, 971, 1696 9436, -1355, -1355, 7514, 1225, -1355, 816, 929, -1355, 860, 1697 874, 929, -1355, 774, 5096, -1355, -1355, -1355, 11011, 11011, 1698 -1355, 8682, 8682, -1355, 1234, 1239, 1246, 1258, -1355, 1262, 1699 602, 133, 1168, -1355, 512, -1355, 3734, -1355, 4776, 540, 1700 -1355, 6787, 1267, 1270, 11460, 1271, 1278, 50, 78, 53, 1701 4776, 1279, 199, 4776, 4776, 1277, 1283, 399, 1266, -1355, 1702 -1355, -1355, 1256, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1703 -1355, -1355, 1178, 1290, 4776, -1355, 11011, 11011, 124, 1291, 1704 -1355, 10272, 3922, 877, 929, -1355, -1355, -1355, -1355, -1355, 1705 1288, -1355, -1355, -1355, -1355, 1295, 1927, -1355, -1355, 1280, 1706 -1355, 1147, -1355, -1355, 2175, 1292, -1355, -1355, -1355, 827, 1707 1294, -1355, 168, 1298, 11595, 1274, 168, 168, 1303, 1304, 1708 -1355, 1118, 4776, 1302, 1229, 750, 131, 1306, -1355, 1304, 1709 -1355, 1311, 1306, -1355, -1355, 1314, -1355, -1355, 1068, 1317, 1710 1322, 7034, 1321, 1323, 1324, -1355, -1355, 1328, -1355, -1355, 1711 1068, -1355, -1355, -1355, -1355, 1068, 4776, 4776, 971, 1329, 1712 -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1713 -1355, -1355, 11595, 11595, 1331, 1332, 1306, -1355, -1355, 1178, 1714 -1355, -1355, -1355, 5878, 10863, 4776, 4776, 1387, 4776, -1355, 1715 1316, -1355, 1319, -1355, 1320, 4776, 1325, 4776, 1035, 1326, 1716 64, 124, 9704, 973, -1355, -1355, 6657, 1334, 542, -1355, 1717 -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355, 1068, -1355, 1718 11278, -1355, 8798, 1336, -1355, -1355, 10863, 543, 587, -1355, 1719 1338, 1337, 859, 1346, -1355, 370, -1355, -1355, 4776, 1347, 1720 1348, -1355, -1355, 1349, 650, 721, 512, 1355, 1356, -1355, 1721 1357, -1355, 11011, -1355, -1355, -1355, -1355, -1355, 1361, -1355, 1722 11011, 11011, 11011, -1355, -1355, 1363, -1355, 1366, 1370, 1371, 1723 667, 8334, 8450, -1355, -1355, 490, -1355, 1375, 1380, -1355, 1724 8914, 832, 839, 1373, 844, 6216, -1355, -1355, -1355, 588, 1725 -1355, 866, 1384, 1385, 199, 1435, 1031, -1355, -1355, 4776, 1726 -1355, 11460, 11518, -1355, -1355, -1355, 1390, 1392, 11011, -1355, 1727 -1355, -1355, 1391, -1355, -1355, -1355, -1355, -1355, -1355, 10863, 1728 859, 253, -1355, 1376, 859, 1229, 337, -1355, -1355, -1355, 1729 -1355, -1355, -1355, -1355, -1355, 1393, -1355, -1355, -1355, -1355, 1730 -1355, -1355, 1395, 1402, -1355, -1355, -1355, -1355, -1355, -1355, 1731 -1355, 1405, -1355, 1404, -1355, -1355, 11460, 155, 4776, 11460, 1732 -1355, 1409, 4776, -1355, 195, 1424, 1425, -1355, -1355, 1417, 1733 1418, 1396, -1355, 1037, -1355, -1355, -1355, -1355, 1161, 2175, 1734 1414, 912, 1038, 11595, -1355, 886, 1421, 4776, 512, 512, 1735 1426, 1428, 1432, 1433, -1355, -1355, 8682, 1419, -1355, 1502, 1736 11595, 1430, -1355, -1355, 11371, -1355, 888, -1355, 1413, 11460, 1737 1416, -1355, -1355, 1440, -1355, 1444, -1355, 1459, 1461, -1355, 1738 1427, 1448, 10863, -1355, -1355, -1355, 859, 512, 1450, 1436, 1739 1445, -1355, 1306, 1306, -1355, -1355, -1355, -1355, -1355, 11460, 1740 340, -1355, 1042, -1355, -1355, 5372, -1355, -1355, 1438, 4776, 1741 -1355, 4776, 5372, 199, 10723, 199, 10723, 1455, -1355, 1457, 1742 -1355, -1355, -1355, 1458, 912, -1355, 901, -1355, -1355, 4776, 1743 1460, 1462, -1355, 11595, 11595, -1355, -1355, 1120, 121, -1355, 1744 -1355, 1451, -1355, 1120, -1355, -1355, 2159, 512, -1355, -1355, 1745 199, 10723, 199, 10723, 1467, 1452, 512, -1355, -1355, -1355, 1746 -1355, -1355, 11371, 1470, 1120, 7986, 4776, 11282, 1472, 1120, 1747 1479, 2159, 2686, -1355, -1355, -1355, 1482, -1355, -1355, -1355, 1748 -1355, 9208, -1355, -1355, -1355, 11149, -1355, 11371, -1355, -1355, 1749 1463, 11056, -1355, -1355, 11282, 199, 2686, 199, 1483, 1489, 1750 913, -1355, 11149, -1355, -1355, -1355, 11056, -1355, -1355, -1355, 1751 199, 199, -1355, -1355, -1355, -1355, -1355, -1355, -1355, -1355 1594 3506, 8076, -1332, 12, -1332, -1332, -1332, -1332, -1332, -1332, 1595 -1332, 61, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1596 -1332, -1332, -1332, -1332, -1332, -1332, 102, 102, 102, 1011, 1597 1062, 86, 5961, 228, -1332, -1332, -1332, -1332, -1332, 138, 1598 -1332, -1332, -1332, 684, 144, 9470, -1332, -1332, -1332, -1332, 1599 -1332, -1332, 190, 182, -1332, 1658, -1332, -1332, -1332, -1332, 1600 201, 1834, 303, 32, 4928, -1332, -1332, 9508, 1650, -1332, 1601 -1332, -1332, 615, 401, 4443, 184, 589, 615, 1225, -1332, 1602 -1332, 848, 938, -1332, 615, 1259, -1332, 301, -1332, 486, 1603 503, -1332, -1332, -1332, -1332, 316, 182, 102, -1332, 102, 1604 -1332, -1332, -1332, -1332, 9240, 1658, -1332, -1332, 1658, -1332, 1605 9354, 391, -1332, -1332, -1332, 1948, 9876, -1332, 810, 810, 1606 810, -1332, -1332, -1332, 102, -1332, -1332, -1332, 426, 447, 1607 456, -1332, -1332, -1332, 477, -1332, -1332, -1332, -1332, -1332, 1608 485, 495, -1332, -1332, 36, 8974, 2459, 272, 545, 579, 1609 623, 632, 671, 733, 8777, 7372, 596, 719, -1332, 9546, 1610 -1332, -1332, -1332, -1332, 739, -1332, 209, 3245, 3245, -1332, 1611 760, 213, -1332, -1332, -1332, -1332, 770, 237, 353, 362, 1612 102, 755, -1332, -1332, 1834, 1803, 846, -1332, 70, -1332, 1613 102, 102, 182, -1332, -1332, 98, -1332, 102, 102, -1332, 1614 2479, 820, 843, 810, 5405, -1332, -1332, 844, 9470, -1332, 1615 -1332, 615, -1332, -1332, -1332, 182, -1332, 1658, 190, -1332, 1616 7926, -1332, 810, 810, 810, 182, -1332, 1011, -1332, 2880, 1617 -1332, -1332, 827, 810, -1332, 810, -1332, 138, 8974, 8891, 1618 857, -1332, 1062, 864, 810, -1332, 1011, 870, 879, -1332, 1619 5961, 735, -1332, -1332, -1332, 9437, -1332, -1332, 3894, -1332, 1620 846, 69, 9876, 6310, 1948, 2479, -1332, 114, -1332, -1332, 1621 9354, 1658, 875, 11374, -1332, -1332, 546, -1332, 11116, 886, 1622 926, 10861, 905, 10919, 10938, -1332, 919, -1332, -1332, -1332, 1623 -1332, 10996, 10996, 735, 8632, 928, 10919, 9088, -1332, -1332, 1624 -1332, -1332, -1332, -1332, 949, -1332, 840, 2531, 10919, -1332, 1625 516, 336, 425, 270, 704, 934, 936, 960, 997, 52, 1626 -1332, -1332, 974, 356, -1332, 290, -1332, -1332, 2459, -1332, 1627 -1332, 600, 996, -1332, 701, 996, 1007, 138, -1332, -1332, 1628 1010, 9240, -1332, 1018, 8746, -1332, -1332, 1849, 1084, 8347, 1629 5405, 615, -1332, 615, 810, 810, -1332, -1332, -1332, -1332, 1630 -1332, -1332, 810, 9914, 1658, -1332, -1332, 9987, 1975, -1332, 1631 9012, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1030, 3059, 1632 10919, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1633 -1332, -1332, -1332, -1332, -1332, 1948, -1332, 773, 1012, 1034, 1634 1040, 889, 1045, 1051, 1053, 1803, -1332, -1332, 1063, 190, 1635 1064, -1332, -1332, 1066, -1332, -1332, -1332, 9437, -1332, -1332, 1636 -1332, -1332, -1332, 2479, -1332, 8974, 8974, -1332, 810, 1948, 1637 6923, 1658, 8420, -1332, -1332, -1332, -1332, 9437, 69, -1332, 1638 -1332, 615, 182, -1332, -1332, 9437, -1332, 3625, -1332, -1332, 1639 810, 810, 464, 10025, 1068, 907, 9695, -1332, 437, 475, 1640 1062, -1332, 1067, 1069, 1047, 1070, 810, -1332, -1332, -1332, 1641 -1332, 10283, -1332, 522, 6793, -1332, 182, 1074, -1332, 1948, 1642 11198, 6368, -1332, -1332, -1332, -1332, 939, 2479, -1332, 8493, 1643 846, 5374, -1332, -1332, -1332, 828, 610, 974, 1062, 11374, 1644 861, 9354, -1332, 11374, -1332, -1332, -1332, -1332, 618, -1332, 1645 1073, 926, 326, 8632, -1332, 10025, -1332, -1332, 8632, -1332, 1646 8860, 8632, -1332, -1332, -1332, 1077, -1332, 619, 1082, 630, 1647 1087, -1332, 5066, 7012, -1332, -1332, -1332, 47, -1332, -1332, 1648 10784, -1332, 474, 10784, -1332, -1332, -1332, -1332, -1332, -1332, 1649 -1332, -1332, -1332, -1332, 6310, 6310, -1332, 10919, 10919, 10919, 1650 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 1651 10919, 10919, 10919, 10919, 10919, 4001, 6310, -1332, 356, 777, 1652 -1332, -1332, 102, 102, -1332, -1332, 8974, -1332, -1332, 1066, 1653 735, -1332, 1066, 10842, -1332, -1332, -1332, 6075, 7012, 1086, 1654 9202, 1093, -1332, 10055, -1332, -1332, 739, -1332, 1094, 690, 1655 1096, 1090, 157, 974, -1332, 102, 102, 974, 166, -1332, 1656 102, 102, 1066, -1332, -1332, 102, 102, -1332, 996, 10137, 1657 1658, 11343, 372, 531, 10137, -1332, 6678, -1332, 974, -1332, 1658 9914, -1332, 285, 8042, 8042, 8042, 1658, -1332, 5183, 1085, 1659 453, 1030, 955, 1095, 1097, -1332, 1099, 3245, 590, -1332, 1660 1182, 1658, 8042, 735, 1948, 735, 846, 706, 996, -1332, 1661 -1332, 806, 996, -1332, -1332, -1332, 926, -1332, 996, 182, 1662 10283, -1332, 647, 1107, 688, 1108, -1332, 1109, 182, -1332, 1663 -1332, 9437, 182, 1105, 497, 502, 10167, 7492, 1400, 10919, 1664 1678, -1332, -1332, 1103, 62, 1103, -1332, -1332, -1332, 102, 1665 102, -1332, -1332, 1062, -1332, 102, -1332, -1332, 8891, 1062, 1666 1110, 10919, -1332, 1062, 11343, -1332, -1332, 1113, -1332, -1332, 1667 -1332, 735, -1332, 11271, 10919, -1332, 8042, 718, 8347, -1332, 1668 -1332, 739, 1114, 1115, 828, 2655, -1332, -1332, 11374, -1332, 1669 -1332, 1116, -1332, -1332, 1122, -1332, 1116, 1123, 11116, 6310, 1670 163, 1092, 54, 1131, 1128, 1135, 928, 1130, 1138, -1332, 1671 1140, 1141, 9733, 7132, -1332, 6310, -1332, 630, 1274, -1332, 1672 5523, 6310, 1139, -1332, -1332, 1030, 695, -1332, 6310, -1332, 1673 -1332, 741, -1332, -1332, -1332, -1332, -1332, 516, 516, 336, 1674 336, 425, 425, 425, 425, 270, 270, 704, 934, 936, 1675 960, 997, 10919, 754, -1332, 10283, 1150, 1151, 1153, 777, 1676 -1332, -1332, -1332, -1332, -1332, 10283, 748, 10919, 8042, -1332, 1677 9914, -1332, 7612, 9316, 9126, 7372, -1332, -1332, -1332, 690, 1678 10283, 950, 1164, 1165, 1171, 1172, 1179, 1180, 1181, -1332, 1679 3591, 1090, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1680 -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1066, 1681 -1332, -1332, -1332, 974, -1332, -1332, -1332, -1332, -1332, -1332, 1682 -1332, -1332, 1183, -1332, 1184, 1187, -1332, -1332, 190, 1139, 1683 5183, -1332, -1332, -1332, 3059, 1185, -1332, -1332, -1332, -1332, 1684 -1332, 1062, 6532, 1270, -1332, -1332, -1332, -1332, 1173, 190, 1685 -1332, -1332, 1066, -1332, -1332, 1066, 152, 1066, -1332, -1332, 1686 -1332, -1332, -1332, -1332, 9584, -1332, 182, -1332, 8891, -1332, 1687 -1332, 1193, 795, 1199, 1200, 1204, -1332, -1332, 1678, -1332, 1688 -1332, -1332, -1332, -1332, -1332, -1332, 907, 9763, 1047, -1332, 1689 -1332, 1069, 1205, 1201, -1332, -1332, 1206, 1207, -1332, 718, 1690 1989, -1332, 634, -1332, 2655, 974, -1332, 1211, 11374, 10205, 1691 8974, 1214, -1332, -1332, 1212, 1217, 1213, -1332, 10919, 229, 1692 205, 1215, -1332, 1202, 735, 1202, 7012, 6310, -1332, -1332, 1693 1202, -1332, 1274, 3059, -1332, -1332, -1332, -1332, 1220, 6310, 1694 1228, 735, 5183, -1332, 10784, -1332, 735, -1332, -1332, 6310, 1695 -1332, 863, 996, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1696 1030, 8746, -1332, -1332, 7732, 1219, -1332, 876, 996, -1332, 1697 883, 896, 996, -1332, 810, 4775, -1332, -1332, -1332, 10283, 1698 10283, -1332, 8420, 8420, -1332, 1221, 1226, 1233, 1235, -1332, 1699 1234, 643, 137, 1139, -1332, 735, -1332, 3245, -1332, 6310, 1700 517, -1332, 6892, 1245, 1249, 10726, 1253, 1258, 330, 380, 1701 387, 6310, 1265, 182, 6310, 6310, 1256, 294, 1269, 1250, 1702 -1332, -1332, -1332, 1277, -1332, -1332, -1332, -1332, -1332, -1332, 1703 -1332, -1332, -1332, 1062, 1285, 6310, -1332, 10283, 10283, 102, 1704 1287, -1332, 9845, 9622, 932, 996, -1332, -1332, -1332, -1332, 1705 -1332, 1286, -1332, -1332, -1332, -1332, 1293, 1989, -1332, -1332, 1706 1275, -1332, 1116, -1332, -1332, 1948, 1290, -1332, -1332, -1332, 1707 749, 1292, -1332, 54, 1295, 10919, 1279, 54, 54, 1305, 1708 1301, -1332, 1099, 6310, 1308, 1220, 605, 89, 1306, -1332, 1709 1301, -1332, 1312, 1306, -1332, -1332, 1317, -1332, -1332, 1066, 1710 1319, 1322, 7252, 1323, 1325, 1326, -1332, -1332, 1329, -1332, 1711 -1332, 1066, -1332, -1332, -1332, -1332, 1066, 6310, 6310, 10919, 1712 1330, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1713 -1332, -1332, -1332, 10919, 10919, 1332, 1335, 1306, -1332, -1332, 1714 1062, -1332, -1332, -1332, 7853, 10205, 6310, 6310, 1394, 6310, 1715 -1332, -1332, 1321, -1332, 1324, 6310, 1327, 1331, 6310, 1013, 1716 1333, 97, 8265, 1262, 102, -1332, -1332, 6532, 1334, 537, 1717 -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1066, 1718 -1332, 10544, -1332, 8493, 1345, -1332, -1332, 10205, 562, 563, 1719 -1332, 1343, 1344, 926, 1352, -1332, 450, -1332, -1332, 6310, 1720 1355, 1349, -1332, -1332, 1356, 543, 613, 735, 1357, 1358, 1721 -1332, 1361, -1332, 10283, -1332, -1332, -1332, -1332, -1332, 1365, 1722 -1332, 10283, 10283, 10283, -1332, -1332, 1367, -1332, 1368, 1371, 1723 1372, 668, 8115, 8231, -1332, -1332, 457, -1332, 1376, 1378, 1724 -1332, 8566, 750, 782, 1387, 793, 6762, -1332, -1332, 598, 1725 -1332, -1332, 803, 1388, 1393, 182, 1445, 882, -1332, -1332, 1726 6310, -1332, 10784, 10726, -1332, -1332, -1332, 1396, 1404, 10283, 1727 -1332, -1332, -1332, 1401, -1332, -1332, -1332, -1332, -1332, -1332, 1728 10205, 926, 254, -1332, 1384, 926, 1220, 366, -1332, -1332, 1729 -1332, -1332, -1332, -1332, -1332, -1332, 1405, -1332, -1332, -1332, 1730 -1332, -1332, -1332, 1406, 1409, -1332, -1332, -1332, -1332, -1332, 1731 -1332, -1332, 1414, -1332, 1413, -1332, -1332, 10726, 84, 6310, 1732 10726, -1332, 1417, 6310, -1332, 99, 1433, 1434, -1332, -1332, 1733 1422, 1425, 1408, 852, -1332, -1332, -1332, -1332, -1332, 1658, 1734 1948, 1421, 949, 918, 10919, -1332, 832, 1426, 6310, 735, 1735 735, 1427, 1431, 1440, 1441, -1332, -1332, 8420, 1428, -1332, 1736 1501, 10919, 1437, -1332, -1332, 10637, -1332, 845, -1332, 1424, 1737 10726, 1436, -1332, -1332, 1460, -1332, 1461, -1332, 1476, 1481, 1738 -1332, 1446, 1471, 10205, -1332, -1332, -1332, 926, 735, 1472, 1739 1452, 1468, -1332, 1306, 1306, -1332, -1332, -1332, -1332, -1332, 1740 10726, 295, -1332, 940, -1332, -1332, 5671, -1332, -1332, 1454, 1741 6310, -1332, 6310, 5671, 182, 10025, 182, 10025, 1478, -1332, 1742 1482, -1332, -1332, -1332, 1480, 949, -1332, 850, -1332, -1332, 1743 6310, 1479, 1487, -1332, 10919, 10919, -1332, -1332, 1054, 123, 1744 -1332, -1332, 1465, -1332, 1054, -1332, -1332, 1818, 735, -1332, 1745 -1332, 182, 10025, 182, 10025, 1492, 1474, 735, -1332, -1332, 1746 -1332, -1332, -1332, 10637, 1488, 1054, 6242, 6310, 10548, 1495, 1747 1054, 1502, 1818, 2347, -1332, -1332, -1332, 1505, -1332, -1332, 1748 -1332, -1332, 8974, -1332, -1332, -1332, 10415, -1332, 10637, -1332, 1749 -1332, 1484, 10322, -1332, -1332, 10548, 182, 2347, 182, 1509, 1750 1510, 853, -1332, 10415, -1332, -1332, -1332, 10322, -1332, -1332, 1751 -1332, 182, 182, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1752 -1332 1752 1753 }; 1753 1754 … … 1755 1756 static const yytype_int16 yypgoto[] = 1756 1757 { 1757 -1355, 4671, 3340, -1355, -29, -1355, 1206, 889, -259, -1355, 1758 526, -532, -488, -865, -161, 3194, 0, -1355, 549, 606, 1759 623, 581, 600, 1034, 1041, 1036, 1040, 1043, -1355, 464, 1760 -283, 5428, -920, -733, -959, -1355, -190, -730, 365, -1355, 1761 1538, -1355, 379, -1141, -1355, -1355, 112, -1355, -1341, -609, 1762 225, -1355, -1355, -1355, -1355, 48, -1087, -1355, -1355, -1355, 1763 -1355, -1355, -1355, 300, -1335, 81, -1355, -312, -1355, 479, 1764 274, -1355, 149, -1355, -359, -1355, -1355, -1355, 531, -852, 1765 -1355, -1355, 8, -988, 376, 2486, -1355, -1355, -1355, -81, 1766 -1355, 99, 1389, -187, 1960, 4204, -1355, -1355, 52, 394, 1767 1565, -246, 1300, -1355, 1933, -1355, -1355, 110, 2272, -1355, 1768 2685, 1719, -1355, -1355, -1355, -675, -409, 1170, 1171, 683, 1769 924, 329, -1355, -1355, -1355, 907, 692, -78, -1355, -241, 1770 -263, 674, -1355, -1355, -862, -881, -184, 26, 1049, 86, 1771 -1355, 983, -133, -208, -209, -150, 651, 749, -1355, 987, 1772 -1355, 2825, 209, -478, 902, -1355, -1355, 684, -1355, -230, 1773 -1355, 35, -1355, -1355, -1355, -1207, 404, -1355, -1355, -1355, 1774 1165, -1355, 44, -1355, -1355, -853, -110, -1354, -104, 3033, 1775 -1355, 4412, -1355, 896, -1355, -135, 59, -173, -172, -171, 1776 7, -42, -41, -40, 1597, 25, 28, 46, -130, -170, 1777 -169, -165, -156, -307, -519, -494, -484, -542, -299, -546, 1778 -1355, -1355, -514, 1076, 1082, 1088, 1849, 5102, -569, -582, 1779 -552, -545, -556, -1355, -356, -684, -672, -664, -598, -210, 1780 -201, -1355, -1355, -10, 5, -71, -1355, 4129, 37, -610, 1781 -23 1758 -1332, 4383, 1919, -1332, 1457, -1332, 41, 0, -257, -1332, 1759 544, -527, -514, -956, -190, 3713, -1332, 1485, 580, 585, 1760 548, 602, 1055, 1052, 1056, 1059, 1061, -1332, -217, -341, 1761 5350, -699, -697, -922, -1332, -83, -701, -678, -1332, 561, 1762 -1332, 399, -1087, -1332, -1332, 141, -1332, -1329, -838, 252, 1763 -1332, -1332, -1332, -1332, 71, -1078, -1332, -1332, -1332, -1332, 1764 -1332, -1332, 325, -1308, 57, -1332, -297, -1332, 504, 305, 1765 -1332, 173, -1332, -305, -1332, -1332, -1332, 558, -799, -1332, 1766 -1332, 11, -1027, 151, 658, -1332, -1332, -1332, -52, -1332, 1767 117, 913, -200, 1494, 4071, -1332, -1332, 19, 107, 365, 1768 -232, 1565, -1332, 2150, -1332, -1332, 134, 2571, -1332, 3063, 1769 1550, -1332, -1332, -1332, -643, -431, 1210, 1216, 707, 947, 1770 188, -1332, -1332, -1332, 945, 723, -404, -1332, -520, -362, 1771 293, -1332, -1332, -990, -995, 965, 1194, 1083, 304, -1332, 1772 150, 317, -75, -197, -129, 679, 781, -1332, 1020, -1332, 1773 3338, 1566, -427, 948, -1332, -1332, 710, -1332, -230, -1332, 1774 -89, -1332, -1332, -1332, -1266, 433, -1332, -1332, -1332, 1195, 1775 -1332, 22, -1332, -1332, -865, -105, -1331, -98, 1750, -1332, 1776 2253, -1332, 929, -1332, -168, 288, -180, -179, -173, 2, 1777 -34, -29, -28, 687, 75, 77, 92, -161, -162, -153, 1778 -151, -148, -320, -530, -516, -495, -552, -307, -529, -1332, 1779 -1332, -506, 1106, 1117, 1121, 2218, 5180, -562, -569, -544, 1780 -538, -550, -1332, -429, -691, -685, -671, -611, -246, -241, 1781 -1332, -1332, 1149, 273, -84, -1332, 3714, 76, -612, -441 1782 1782 }; 1783 1783 … … 1785 1785 positive, shift that token. If negative, reduce the rule which 1786 1786 number is the opposite. If YYTABLE_NINF, syntax error. */ 1787 #define YYTABLE_NINF -52 61787 #define YYTABLE_NINF -525 1788 1788 static const yytype_int16 yytable[] = 1789 1789 { 1790 50, 115, 151, 152, 153, 108, 108, 99, 269, 116, 1791 790, 454, 441, 931, 400, 401, 402, 403, 404, 429, 1792 384, 385, 405, 750, 514, 932, 844, 755, 973, 178, 1793 869, 406, 50, 933, 767, 507, 262, 108, 1144, 99, 1794 165, 852, 945, 612, 149, 893, 993, 1091, 1090, 711, 1795 50, 617, 70, 408, 124, 855, 845, 163, 409, 98, 1796 678, 862, 843, 846, 188, 819, 1463, 211, 851, 154, 1797 50, 195, 155, 1202, 218, 108, 145, 228, 221, 178, 1798 687, 51, 178, 1467, 70, 411, 343, 168, 691, 840, 1799 156, 98, 931, 426, 400, 401, 402, 403, 404, 64, 1800 31, 706, 405, 150, 932, 165, 528, 115, 574, 98, 1801 78, 406, 933, 51, 841, 115, 535, 282, 268, 273, 1802 125, 31, 1210, 191, 842, 1214, 98, 1319, 178, 98, 1803 1135, 64, 1400, 408, 204, 31, 604, 1136, 409, 1152, 1804 1463, 1509, 78, 575, 179, 151, 152, 153, 308, 149, 1805 1212, 974, 168, 1219, 1220, 535, 163, 115, 346, 484, 1806 486, 1186, 211, 31, 636, -235, -235, 585, 640, 374, 1807 254, 1215, 412, 586, 778, 283, 1538, 480, 1540, 1184, 1808 1185, 1467, 1211, 1098, 205, 328, 1467, 188, 188, 1196, 1809 745, 178, 31, 412, 263, 163, 1320, 264, 410, 1420, 1810 1421, 436, 676, 268, 535, 420, 1467, 412, 98, 1201, 1811 1213, 50, 154, 1467, 144, 155, 1264, 146, 163, 682, 1812 684, 98, 1261, 211, 840, 151, 152, 153, 738, 1192, 1813 444, 1134, 462, 156, 148, 1483, -235, 681, 683, 1420, 1814 1421, 308, 115, 485, 1265, 178, 399, 191, 437, 841, 1815 293, 1101, 178, 50, 759, 844, 1193, -470, 108, 842, 1816 99, 273, 490, 436, 412, 448, 273, 268, 268, 1422, 1817 98, 596, 673, 115, 1154, 163, 217, 674, 328, 976, 1818 1037, 739, 98, 855, 469, 845, 532, 665, -470, 727, 1819 -470, 1024, 846, 244, -470, 754, 308, 472, 165, 1345, 1820 378, 343, 157, 388, 1012, 70, 440, 1036, 308, 1431, 1821 437, 617, 98, 173, 769, 680, 379, 1202, 840, 389, 1822 178, 685, 702, 31, 579, 528, 488, 704, 217, 149, 1823 528, 924, 183, 528, 51, 535, 374, 178, 480, 1110, 1824 1216, 178, 115, 841, 203, 168, 346, 31, 485, -291, 1825 610, 628, 64, 842, 673, 564, 565, 481, 480, 674, 1826 492, 1186, 1403, 78, 249, 633, 480, 509, 78, 633, 1827 576, 217, 115, 1091, 1090, 844, 57, 117, 823, 883, 1828 883, 883, 762, 606, 763, 812, 1551, 764, 98, 852, 1829 770, 566, 567, 853, 71, 609, 829, 268, 883, 254, 1830 170, 882, 882, 882, 178, 845, 1562, 188, 57, 611, 1831 265, 1186, 846, 1566, 374, 935, 914, 860, 604, 609, 1832 882, 252, 869, 604, 171, 268, 71, 308, 308, 1184, 1833 1185, 268, 217, 738, 633, 179, 1493, 948, 878, 112, 1834 1552, 141, 142, 212, 391, 462, 222, -113, 462, -521, 1835 41, 42, 637, 1382, 1407, 115, 641, 699, 115, -10, 1836 392, 214, 343, 1193, 328, 328, 191, 1567, -113, 393, 1837 217, 288, 883, 1172, 1174, 217, 748, 1202, 889, 331, 1838 1343, 268, 41, 42, 1202, 394, 739, 1344, 1121, 268, 1839 502, 633, 503, 50, 882, 727, 374, 744, 108, 728, 1840 99, -444, 977, 115, -445, 532, 894, 532, 523, 738, 1841 532, 507, 278, 532, 1150, 308, 703, 115, 481, 587, 1842 308, 412, 308, 308, 400, 401, 402, 403, 404, 78, 1843 777, 1260, 405, 115, 346, 1186, 711, 1202, 481, 395, 1844 328, 406, 1035, 1452, 1453, 70, 481, 1037, 280, 78, 1845 617, 712, 98, 905, 1458, 396, 611, 78, 332, 328, 1846 217, 907, 739, 883, 408, 884, 885, 713, 178, 409, 1847 112, 714, 141, 240, 51, 1380, 535, 281, 579, 579, 1848 1106, 41, 42, 903, 112, 882, 308, 715, 706, 856, 1849 736, 333, 64, 859, 334, 41, 42, 633, 346, 442, 1850 178, 335, 628, 78, 760, -113, -113, 241, 610, 480, 1851 610, 761, 242, 1499, 876, 872, 178, 443, 879, 873, 1852 1499, -113, 712, 328, 343, 112, 336, 1017, 633, 57, 1853 727, 178, 829, 633, 1106, 628, 41, 42, 927, 633, 1854 727, 217, 633, 633, 633, 895, 714, 71, 372, 874, 1855 831, 953, 1430, 875, 727, 1035, 1199, 956, 1199, 1334, 1856 692, 633, 928, 268, 782, 870, 586, 839, 373, 611, 1857 606, 377, 1200, 1548, 1325, 1335, 896, 1048, 651, 874, 1858 254, 330, 897, 1117, 2, 208, 4, 5, 6, 7, 1859 112, 217, 711, 1133, 386, 115, 346, 699, 1095, 699, 1860 343, 41, 42, 1336, 774, 728, 390, 462, 2, 208, 1861 4, 5, 6, 7, -106, 871, -292, 115, -106, 1337, 1862 1383, 829, 112, 8, 9, 10, 11, 12, 178, 788, 1863 590, 886, 412, 41, 42, 633, 958, 628, 1129, 1501, 1864 398, 1502, 1055, 744, 744, 214, 902, 557, 1015, 35, 1865 410, 36, 31, 558, 559, 427, 930, 112, 703, 141, 1866 142, 1349, 2, 208, 4, 5, 6, 7, 41, 42, 1867 37, 115, 346, 35, 40, 36, 777, 777, 1183, 1368, 1868 34, 41, 42, 1369, 8, 9, 10, 11, 12, 481, 1869 1393, 230, 43, 112, 751, 736, 1549, 560, 561, 752, 1870 78, 673, 839, 611, 41, 42, 674, 44, 428, 702, 1871 604, 217, -3, 31, 704, 729, 46, 47, 579, 746, 1872 1251, 730, 562, 563, 1255, 747, 633, 35, 633, 36, 1873 1020, 481, 1351, 633, 346, 519, 908, 610, 412, 217, 1874 728, 34, 78, 509, 217, 433, 1176, 931, 1040, 610, 1875 728, 1253, 568, 569, 727, 727, 451, 555, 556, 932, 1876 -113, 911, -113, 412, 728, -368, -113, 933, 1156, 57, 1877 412, 736, 112, 977, 141, 142, 214, 977, 977, 756, 1878 -397, -113, -113, 41, 42, 757, 831, 71, 1522, 49, 1879 114, 773, 493, 178, 1527, 555, 839, 774, 738, 470, 1880 308, 829, 254, 330, 412, 108, 1197, 471, 611, 1293, 1881 1294, 918, 727, 727, 245, 1547, 462, 774, 114, 114, 1882 1554, 49, 633, 920, 1001, 1168, 115, 412, 1014, 774, 1883 1002, 555, 217, 49, 730, 462, 699, 1249, 513, 49, 1884 1118, 293, 1376, 586, 699, 115, 217, 49, 774, 1377, 1885 517, 739, 70, 49, 1379, 774, 49, 958, 958, 49, 1886 774, 522, 744, 536, 537, 538, 533, 115, 308, 1171, 1887 -293, 609, 108, 114, 114, 1122, 1384, 8, 9, 10, 1888 11, 12, 774, 1173, 346, 609, 1236, 539, 412, 540, 1889 777, 541, 542, 1341, 535, 703, 1449, 49, 1468, 64, 1890 49, 570, 1446, 703, 774, 328, 31, 49, 1005, 1002, 1891 78, 1515, 571, 143, 1244, 1301, 1302, 1516, 1304, 572, 1892 346, 611, 573, 1572, 443, 1309, 576, 1311, 1371, 586, 1893 43, 939, 739, 939, 34, 420, 669, 412, 49, 217, 1894 339, 633, 633, 774, 1007, 578, 49, 412, 490, 330, 1895 412, 49, 330, 412, 46, 47, 1330, 870, 536, 537, 1896 538, 308, -441, -294, 728, 728, 108, 243, 246, 594, 1897 8, 9, 10, 11, 12, 597, 49, 49, 853, 330, 1898 609, 1401, 539, -3, 540, 1401, 541, 1322, 727, 1389, 1899 1390, 462, 49, 1312, 1313, 1314, 727, 727, 727, 31, 1900 49, 115, 633, 1350, 1352, 1353, 793, 794, 795, 49, 1901 646, 43, 49, 1204, 666, 43, 958, 214, 667, 114, 1902 1448, 668, 728, 728, 268, 670, 776, 34, 412, 671, 1903 957, 214, 609, 672, 114, 46, 47, 1460, 114, 46, 1904 47, 675, 49, 114, 727, 800, 801, 802, 803, 718, 1905 1534, 343, 1440, 1002, 1446, 1447, 49, 49, 1494, 1495, 1906 481, 346, 934, 49, 1420, 1421, 796, 797, 804, 805, 1907 49, 78, 8, 9, 10, 11, 12, 677, 37, 259, 1908 176, 177, 40, 695, 934, 798, 799, 1484, 1426, 41, 1909 42, 717, 720, 178, 131, 722, 132, 133, 134, -239, 1910 1106, 31, 758, 273, 115, 41, 42, 113, 771, 108, 1911 1520, 1460, 221, 775, 779, 373, -12, 832, 49, 833, 1912 836, 847, 115, 899, 214, 919, 308, -13, 466, 34, 1913 891, 108, 217, 37, 892, 176, 177, 40, 49, 49, 1914 921, 922, 633, 698, 41, 42, 115, 926, -418, 947, 1915 112, 108, 141, 142, 1122, 49, 43, -525, 961, 49, 1916 736, 41, 42, 747, 968, 1079, 1331, 970, 975, 981, 1917 652, 578, 982, 412, 983, 1006, 57, 985, 70, 986, 1918 46, 47, 987, 988, 997, 1009, 49, 1010, 1092, 1444, 1919 1011, 633, 633, 1026, 71, 1027, 49, 1028, 728, 1029, 1920 273, 1030, 1031, 1032, 1112, 308, 728, 728, 728, 1043, 1921 108, 1560, -406, -405, 49, 1057, 1102, 1094, 1103, 1104, 1922 49, 1105, 49, 1111, 1113, 64, 37, 1114, 992, 1120, 1923 40, 1130, 774, 1131, 1132, 1166, 78, 41, 42, 115, 1924 1137, 736, 991, 1123, 108, 1142, 49, 1122, 43, 1145, 1925 1187, 114, 1050, 917, 728, 1188, 1189, 1204, 400, 401, 1926 402, 403, 404, 743, 653, 114, 405, 215, 1190, 178, 1927 49, -3, 46, 47, 1191, 406, 1205, 234, 49, 1206, 1928 1208, 37, 49, 176, 177, 40, 49, 1209, 1217, 114, 1929 118, 114, 41, 42, 1221, 1222, 1533, 408, 1224, 268, 1930 1229, 1234, 409, 1239, 481, 1241, 1254, 1245, 1250, 502, 1931 1252, 652, 217, 1257, 1262, 78, 633, 443, 377, 215, 1932 1258, 673, 1266, 1269, 1271, 114, 674, 1273, 652, 1207, 1933 114, 652, 1274, 1275, 1303, 1276, 1277, 57, 1279, 161, 1934 934, 1286, 115, 1295, 1296, 716, 1332, 108, 1306, 1324, 1935 1122, 1307, 1308, 1338, 1340, 71, 1342, 1310, 1318, 1346, 1936 474, 1348, 215, 1347, 1507, 115, 1507, 1354, 1355, 1356, 1937 108, 1153, 115, 1358, 115, 1364, 115, 108, 1365, 114, 1938 1366, 1367, 1378, 749, 1443, 753, 49, 1374, 1008, 151, 1939 152, 153, 1375, 1385, 1386, 1314, 260, 49, 1013, 49, 1940 1394, 1507, 1395, 1507, 161, 1397, 1532, 1414, 1404, 217, 1941 1407, 115, 1025, 115, 1415, -407, 1418, 1204, 49, 1429, 1942 1433, 1435, 1050, 215, 1204, 115, 1437, 1438, 1439, 1445, 1943 108, 1532, 1532, 1450, 49, 1369, 1454, 324, 1455, 163, 1944 114, 308, 1456, 1457, 1459, 1469, 340, 1464, 1471, 49, 1945 1473, 114, 49, 114, 1475, 1477, 1532, 1479, 1482, 1481, 1946 1487, 215, 1489, 374, 481, 1510, 215, 1512, 1488, 555, 1947 1500, 481, 1518, 1514, 1519, 78, 1541, 1204, 328, 212, 1948 222, 508, 78, 1526, 1542, 1546, 49, 1553, 49, 1555, 1949 488, 1079, 1557, 1570, 175, 1563, 431, 214, 934, 1571, 1950 435, 114, 57, 1223, 806, 1323, 1521, 114, 808, 1432, 1951 519, 114, 807, 809, 1573, 1388, 1256, 810, 1405, 114, 1952 71, 1503, 1123, 1228, 481, 693, 694, 1107, 940, 949, 1953 324, 457, 49, 49, 890, 78, 231, 255, 1109, 825, 1954 232, 1056, 1141, 236, 898, 238, 49, 164, 1119, 963, 1955 1333, 215, 247, 971, 815, 0, 934, 934, 741, 0, 1956 816, 196, 435, 0, 219, 497, 817, 229, 0, 0, 1957 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, 1958 0, 57, 113, 0, 0, 530, 1392, 0, 0, 0, 1959 0, 0, 0, 0, 443, 943, 0, 161, 0, 71, 1960 0, 946, 0, 0, 0, 466, 0, 0, 0, 0, 1961 0, 0, 1181, 1182, 0, 1123, 0, 0, 37, 0, 1962 185, 186, 40, 0, 0, 0, 49, 0, 766, 41, 1963 42, 595, 215, 418, 0, 601, 0, 0, 49, 0, 1964 43, 1419, 783, 0, 1427, 766, 164, 789, 766, 215, 1965 0, 0, 0, 0, 634, 697, 438, 412, 638, 375, 1966 0, 340, 0, 698, 46, 47, 446, 0, 0, 0, 1967 1231, 1232, 0, 0, 0, 0, 0, 0, 0, 231, 1968 0, 652, 215, 0, 0, 164, 216, 0, 114, 1466, 1969 0, 0, 0, 37, 1470, 0, 474, 40, 0, 8, 1970 9, 10, 11, 12, 41, 42, 0, 0, 164, 0, 1971 0, 49, 0, 0, 0, 43, 324, 324, 1123, 0, 1972 445, 0, 0, 0, 1492, 49, 0, 0, 31, 0, 1973 837, 0, 609, 49, 529, 0, 0, 0, 216, 46, 1974 47, 57, 0, 0, 457, 0, 0, 457, 57, 0, 1975 37, 49, 185, 186, 40, 0, 34, 0, 0, 71, 1976 0, 41, 42, 0, 0, 118, 71, 934, 904, 0, 1977 906, 114, 43, 0, 0, 653, 0, 0, 0, 0, 1978 652, 216, 1060, 43, 934, 0, 0, 608, 114, 609, 1979 497, 652, 324, 114, 497, 0, 46, 47, 776, 0, 1980 412, 57, 215, 0, 530, 0, 530, 46, 47, 530, 1981 1561, 324, 530, 0, 0, 0, 1561, 0, 231, 71, 1982 236, 0, 340, 0, 0, 0, 375, 1561, 0, 0, 1983 215, 1561, 0, 76, 0, 215, 952, 8, 9, 10, 1984 11, 12, 216, 114, 0, 0, 1357, 0, 0, 0, 1985 0, 0, 0, 0, 1359, 1360, 1361, 934, 934, 0, 1986 67, 119, 0, 0, 0, 76, 31, 0, 0, 0, 1987 0, 0, 0, 0, 653, 324, 0, 0, 0, 0, 1988 216, 114, 689, 0, 0, 216, 827, 37, 0, 185, 1989 186, 40, 67, 0, 34, 0, 0, 0, 41, 42, 1990 0, 0, 1396, 224, 375, 0, 0, 0, 231, 43, 1991 162, 0, 0, 49, 0, 0, 731, 868, 0, 0, 1992 0, 43, 601, 215, 697, 0, 412, 0, 877, 0, 1993 223, 0, 0, 46, 47, 0, 957, 215, 609, 0, 1994 414, 0, 0, 0, 0, 46, 47, 422, 8, 9, 1995 10, 11, 12, 529, 0, 0, 0, 508, 529, 0, 1996 0, 529, 0, 0, 0, 0, 0, 261, 0, 0, 1997 216, 0, 0, 0, 0, 1060, 0, 31, 37, 0, 1998 185, 186, 40, 0, 340, 0, 0, 0, 114, 41, 1999 42, 354, 0, 0, 0, 0, 0, 0, 0, 0, 2000 43, 0, 0, 0, 0, 34, 457, 0, 0, 329, 2001 37, 49, 185, 186, 40, 187, 0, 261, 351, 414, 2002 0, 41, 42, 0, 46, 47, 0, 0, 0, 0, 2003 215, 0, 43, 0, 0, 0, 497, 0, 0, 0, 2004 0, 0, 0, 0, 0, 0, 0, 608, 407, 609, 2005 0, 216, 0, 114, 114, 114, 46, 47, 0, 0, 2006 340, 0, 0, 425, 0, 450, 430, 432, 0, 0, 2007 0, 162, 0, 584, 0, 0, 0, 0, 0, 0, 2008 0, 588, 1299, 0, 591, 0, 76, 0, 1138, 0, 2009 0, 76, 449, 0, 0, 0, 452, 0, 453, 0, 2010 0, 216, 0, 0, 0, 1146, 0, 468, 766, 0, 2011 1146, 652, 0, 67, 0, 0, 916, 1016, 482, 0, 2012 0, 0, 827, 0, 0, 923, 0, 0, 489, 925, 2013 0, 37, 0, 185, 186, 40, 432, 0, 0, 0, 2014 0, 0, 41, 42, 0, 0, 0, 37, 414, 185, 2015 186, 40, 422, 43, 0, 0, 0, 0, 41, 42, 2016 1146, 0, 0, 0, 0, 0, 0, 0, 1531, 43, 2017 412, 0, 79, 0, 0, 0, 0, 46, 47, 0, 2018 0, 0, 0, 0, 267, 224, 0, 49, 49, 0, 2019 0, 0, 0, 46, 47, 0, 0, 114, 114, 0, 2020 0, 0, 261, 0, 79, 0, 602, 0, 0, 0, 2021 0, 827, 630, 0, 0, 457, 0, 0, 0, 0, 2022 0, 216, 0, 215, 0, 635, 0, 0, 0, 635, 2023 0, 0, 261, 0, 457, 0, 114, 414, 0, 0, 2024 0, 0, 225, 0, 0, 0, 0, 0, 0, 216, 2025 0, 0, 76, 0, 216, 497, 1124, 324, 0, 0, 2026 0, 0, 0, 0, 0, 0, 0, 354, 0, 0, 2027 0, 0, 76, 0, 0, 0, 0, 0, 0, 482, 2028 76, 543, 544, 545, 546, 547, 548, 549, 550, 551, 2029 552, 0, 0, 0, 351, 49, 114, 0, 0, 482, 2030 0, 0, 0, 0, 0, 114, 354, 482, 0, 868, 2031 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 2032 49, 49, 0, 0, 354, 0, 76, 584, 584, 0, 2033 356, 0, 0, 723, 0, 0, 432, 0, 0, 0, 2034 0, 0, 216, 0, 0, 49, 0, 0, 0, 0, 2035 0, 737, 0, 67, 0, 0, 216, 0, 0, 0, 2036 0, 432, 1100, 0, 0, 432, 0, 354, 0, 0, 2037 1146, 1146, 1146, 0, 0, 0, 0, 0, 0, 0, 2038 0, 8, 9, 10, 11, 12, 58, 58, 0, 0, 2039 457, 827, 0, 261, 351, 0, 0, 0, 0, 0, 2040 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 2041 31, 0, 0, 0, 0, 909, 0, 0, 58, 912, 2042 0, 0, 0, 0, 0, 79, 0, 0, 766, 0, 2043 79, 354, 0, 0, 0, 0, 0, 0, 34, 818, 2044 0, 0, 0, 37, 0, 185, 186, 40, 0, 216, 2045 0, 0, 414, 58, 41, 42, 58, 635, 830, 0, 2046 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 2047 849, 0, 0, 0, 0, 354, 354, 354, 0, 0, 2048 697, 0, 412, 0, 0, 0, 0, 0, 602, 46, 2049 47, 0, 0, 602, 354, 0, 0, 0, 0, 635, 2050 215, 0, 351, 351, 351, 0, 0, 0, 0, 0, 2051 1218, 340, 354, 0, 1146, 1146, 0, 0, 0, 0, 2052 0, 351, 0, 76, 225, 0, 0, 0, 0, 354, 2053 0, 0, 0, 0, 0, 1124, 0, 0, 0, 723, 2054 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, 2055 482, 0, 0, 1485, 0, 261, 737, 0, 0, 936, 2056 0, 0, 0, 0, 0, 76, 0, 584, 354, 0, 1790 47, 112, 96, 427, 398, 399, 768, 933, 452, 148, 1791 266, 400, 113, 934, 149, 150, 791, 406, 871, 67, 1792 259, 439, 401, 512, 407, 712, 707, 935, 613, 112, 1793 112, 402, 47, 403, 96, 1203, 404, 1092, 382, 383, 1794 846, 618, 111, 47, 895, 47, 505, 160, 1187, 854, 1795 1153, 67, 1185, 1186, 142, 47, 749, 48, 975, 853, 1796 201, 47, 857, 192, 47, 847, 215, 47, 864, 225, 1797 342, 848, 751, 820, 1401, 947, 756, 1145, 218, 842, 1798 845, 112, 112, 995, 398, 399, 933, 279, 409, 48, 1799 1464, 400, 934, 843, 121, 424, 1468, 406, 605, 1197, 1800 779, 31, 401, 1091, 407, 47, 935, 68, 47, 31, 1801 202, 402, 679, 403, 844, 47, 404, 61, 151, 109, 1802 152, 165, 637, 884, 884, 884, 641, 739, 1421, 1422, 1803 41, 42, 688, 408, 75, 153, 290, 31, 446, 68, 1804 692, 31, 884, 1421, 1422, 280, 47, 574, 160, 61, 1805 148, 54, 114, 31, 47, 149, 150, 467, 783, 47, 1806 1320, 372, 482, 484, 1464, 978, 75, -234, -234, 1510, 1807 122, 211, 858, 410, 1265, 746, 861, 1484, 483, 251, 1808 140, 410, 575, 54, 47, 47, 165, 160, 2, 205, 1809 4, 5, 6, 7, 1468, 141, 31, 878, 1423, 1468, 1810 47, 881, 1266, 478, 1539, 31, 1541, 418, 47, 410, 1811 160, 527, 677, 1432, 842, 209, 884, 47, 219, 1468, 1812 47, 327, 442, 488, 1080, 410, 1468, 112, 843, 1321, 1813 148, 240, 243, 1193, 536, 149, 150, 674, -234, 143, 1814 886, 887, 112, 740, 675, 536, 112, 145, 1187, 844, 1815 47, 112, 96, 35, 760, 36, 154, 596, 905, 151, 1816 1194, 152, 1099, 1202, 47, 47, 855, 160, 610, 67, 1817 846, 47, 470, 105, 105, 862, 153, 610, 47, 1203, 1818 976, 885, 885, 885, 435, 1102, 342, 703, 95, 1038, 1819 666, 857, 472, 112, 705, 847, 170, 167, 1187, 1037, 1820 885, 848, 1185, 1186, 618, 105, 200, 48, 884, 842, 1821 1025, 536, 1155, 1014, 327, 1136, -3, 180, 681, 674, 1822 95, 168, 1137, 843, 686, 376, 675, 441, 47, 386, 1823 372, 147, 958, 95, 524, 739, 536, 1346, 1135, 1111, 1824 105, 377, 682, 684, 844, 387, 435, 47, 47, 188, 1825 683, 685, 95, 389, 605, 95, 831, 68, 937, 176, 1826 564, 565, 1092, 1404, 47, 478, 285, 61, 47, 390, 1827 1217, 440, 479, 165, 885, 1220, 1221, 41, 42, 653, 1828 950, 251, 329, 605, 75, 478, 926, 1208, 605, 75, 1829 846, 1494, 464, 478, 483, 47, 566, 567, 854, 880, 1830 585, 54, 109, 521, -290, 47, 586, 372, 536, 260, 1831 871, 739, 261, 41, 42, 847, 576, 246, 1194, 916, 1832 607, 848, 1187, 47, 1017, 251, 755, 1459, 1091, 47, 1833 527, 47, 1041, 228, 95, 527, 761, 229, 527, 1203, 1834 233, 1552, 235, 762, 1262, 770, 1203, 95, 342, 244, 1835 1553, 740, 109, 1453, 1454, 47, 211, 560, 561, 109, 1836 112, 1563, 1211, 41, 42, 578, 885, 410, 1567, 391, 1837 41, 42, 397, 188, 112, 579, -112, 1568, 393, 47, 1838 1173, 1175, 936, 1408, 874, 392, 249, 47, 875, 372, 1839 1151, 47, 813, 96, 394, 47, 95, -112, 112, 1203, 1840 112, 327, 327, -520, 936, 979, 1215, 1383, 95, 1107, 1841 67, 824, 1213, 562, 563, 111, 712, 707, 398, 399, 1842 653, 438, 263, 105, 1119, 400, 505, 740, 896, 654, 1843 1261, 1036, 406, -469, 479, -10, 401, 112, 95, 407, 1844 653, 1122, 112, 653, 618, 402, 109, 403, 48, 1080, 1845 404, 75, 486, 713, 479, 1038, -443, 41, 42, 907, 1846 1344, 767, 479, 1107, -469, -444, -469, 1345, 909, 714, 1847 -469, 75, -112, -112, 693, 490, 228, 327, 784, 75, 1848 586, 767, 507, 790, 767, 789, 275, 211, -112, 1019, 1849 112, 715, -291, 831, 277, 1008, 327, 47, 68, 8, 1850 9, 10, 11, 12, 278, 1381, 737, 716, 61, 47, 1851 717, 47, 342, 713, 172, 109, 95, 833, 715, 2, 1852 205, 4, 5, 6, 7, 75, 41, 42, 31, 929, 1853 47, 472, 730, 1200, 930, 557, 612, 1134, 731, 478, 1854 558, 559, 54, 876, 1036, 1394, 47, 877, 750, 1201, 1855 754, 176, 112, 1200, 1350, 330, 34, 252, 55, 55, 1856 1523, 47, 327, 112, 47, 112, 1528, 1500, 638, 1326, 1857 897, 712, 642, 1051, 1500, 500, 607, 501, 1335, 1337, 1858 1184, 955, 1431, 831, 35, 109, 36, 1548, 342, 331, 1859 55, 1049, 1555, 188, 1336, 1338, 41, 42, 47, 1420, 1860 47, 898, 1428, 652, 906, 872, 908, 899, 370, 587, 1861 607, 410, 1096, 112, 775, -112, 228, -112, 233, 112, 1862 747, -112, 55, 112, 1352, 55, 748, 1549, 757, 774, 1863 1384, 112, 161, 332, 758, 775, -112, -112, 441, 777, 1864 1130, 410, 333, 704, 47, 47, 876, 1467, 193, 778, 1865 1118, 216, 1471, 416, 226, -105, 37, 920, 47, -105, 1866 40, 936, 37, 775, 105, 1056, 40, 41, 42, 1502, 1867 674, 1503, 954, 41, 42, 605, 436, 675, 703, 95, 1868 1369, 334, 1493, 612, 1370, 705, 444, 8, 9, 10, 1869 11, 12, 1154, 43, 1254, 1393, 568, 569, 922, 839, 1870 739, 610, 892, 146, 775, 1003, 228, 109, 479, 611, 1871 590, 1004, 410, 347, 737, 910, 31, 410, 41, 42, 1872 8, 9, 10, 11, 12, 75, 1550, 959, 371, 610, 1873 763, 211, 764, 161, 1177, 765, 1252, 960, 771, 47, 1874 1256, 933, 1051, 335, 34, 211, 373, 934, 375, 31, 1875 479, 47, 1294, 1295, 833, 528, 1007, 1004, 1016, 1250, 1876 1377, 935, 831, 945, 731, 586, 775, 75, 1562, 948, 1877 775, 1009, 161, 464, 1562, 384, 979, 34, 55, 388, 1878 979, 979, 251, 329, 410, 1562, 578, 396, 410, 1562, 1879 737, 941, 1378, 941, 653, 161, 579, 841, 775, 612, 1880 37, 112, 653, 1380, 40, 329, 410, 443, 55, 775, 1881 408, 41, 42, 1385, 115, 913, 740, 410, 936, 775, 1882 109, 67, 138, 237, 47, 537, 538, 539, 1198, 425, 1883 1372, 41, 42, 109, 873, 138, 139, 744, 47, 211, 1884 1390, 1391, 1450, 1078, 41, 42, 47, 745, 1447, 540, 1885 888, 541, 426, 542, 543, 1469, 431, 238, 158, 449, 1886 1516, 775, 239, 1573, 47, 904, 1517, 1441, 1004, 586, 1887 752, -367, 1157, 919, 410, 753, 936, 936, -396, 37, 1888 1123, 182, 183, 40, 112, 1169, 932, 410, 704, 491, 1889 41, 42, 1172, 653, 610, 511, 1342, 740, 418, 670, 1890 410, 112, 468, 690, 653, 1174, 112, 610, 290, 68, 1891 109, 469, 138, 139, 515, 373, 698, 257, 410, 61, 1892 1245, 41, 42, 158, 699, 1139, 700, 109, 520, 138, 1893 139, 536, 841, 612, 1447, 1448, 75, 732, 41, 42, 1894 532, 1237, 1147, 410, 654, 767, 327, 1147, 488, 329, 1895 410, 1061, 242, 54, 570, 112, 1495, 1496, 323, 855, 1896 329, 610, 507, 1449, 571, 653, 891, 339, 112, 112, 1897 112, 1313, 1314, 1315, 528, 1351, 1353, 1354, 1535, 528, 1898 1461, 1205, 528, 128, 1402, 129, 130, 131, 1402, 572, 1899 347, 573, 373, 112, 41, 42, 1147, 872, 1421, 1422, 1900 8, 9, 10, 11, 12, 576, 1078, 338, 1010, 1212, 1901 1214, 1216, 801, 802, 803, 804, -440, 429, 1015, 594, 1902 1124, 433, 667, 1302, 1303, 47, 1305, 841, 1107, 31, 1903 597, 441, 1309, 1026, 109, 1312, 138, 139, 342, 612, 1904 797, 798, 647, 654, 668, 41, 42, 799, 800, 55, 1905 669, 323, 455, 1521, 1461, 671, 37, 34, 182, 183, 1906 40, 672, 37, 673, 182, 183, 40, 41, 42, 68, 1907 805, 806, 676, 41, 42, 105, 678, 256, 721, 479, 1908 696, 718, 759, 433, 723, 719, 495, 936, -238, 772, 1909 1485, 347, 776, 609, 162, 610, 75, 780, 834, 609, 1910 112, 610, -12, 611, 936, 836, 838, 529, 849, 611, 1911 158, 901, -13, 54, 893, 894, 218, 921, 923, 928, 1912 699, 924, 47, -417, 977, 949, 704, 653, -292, -524, 1913 963, 970, 748, 972, 704, 8, 9, 10, 11, 12, 1914 918, 983, 105, 1061, 984, 985, 67, 987, 988, 925, 1915 989, 990, 612, 927, 595, 999, 347, 602, 1123, 162, 1916 1011, 1012, -293, 1013, 31, 112, 112, 112, 1078, 8, 1917 9, 10, 11, 12, 1027, 1028, 635, 936, 936, 737, 1918 639, 1029, 1030, 339, 8, 9, 10, 11, 12, 1031, 1919 1032, 1033, 34, 1044, -405, 1445, 1427, -404, 31, 1093, 1920 1058, 347, 347, 347, 1095, 1103, 1147, 1147, 1147, 1104, 1921 1105, 211, 1561, 31, 1106, 1112, 993, 1113, 1114, 1115, 1922 347, 1121, 653, 653, 1131, 1205, 34, 1132, 775, 1167, 1923 1133, 1138, 1182, 1183, 68, 105, 1143, 1188, 323, 323, 1924 1146, 34, 1189, 1190, 61, 1191, 1192, 537, 538, 539, 1925 1300, 1123, 398, 399, 1206, 209, 219, 434, 1207, 400, 1926 737, 75, 1209, 767, 1078, 406, 455, 1210, 1222, 455, 1927 401, 540, 407, 541, 1218, 542, 1322, 653, 54, 402, 1928 653, 403, 1225, 777, 404, 410, 1224, 115, 460, 674, 1929 1232, 1233, -3, 778, 347, 1230, 675, 1235, 1124, 47, 1930 47, 1240, 1534, 1242, 500, 1246, 1251, 1253, 441, 112, 1931 112, 1255, 495, 68, 323, 1258, 495, 1259, 1078, 434, 1932 1263, 1078, 1267, 479, 1270, 653, 529, 1272, 529, 1274, 1933 653, 529, 1275, 323, 529, 1276, 728, 1277, 1278, 1280, 1934 75, 1304, 1287, 531, 1296, 339, 162, 1297, 112, 1325, 1935 1147, 1147, 440, 1307, 1123, 1333, 1308, 54, 1339, 1310, 1936 653, 1341, 1343, 1311, 1348, 1319, 1078, 1347, 1349, 1355, 1937 1356, 1078, 37, 1357, 182, 183, 40, 1359, 105, 1365, 1938 1366, 1367, 1368, 41, 42, 1205, 347, 1101, 1375, 1486, 1939 1376, 1124, 1205, 347, 64, 116, 1379, 1386, 148, 323, 1940 105, 1078, 1387, 149, 150, 1315, 1395, 47, 112, 698, 1941 829, 410, 175, 602, 1396, 1398, 1405, 112, 1415, 700, 1942 105, 1416, 1408, 653, -406, 1419, 64, 1430, 653, 1434, 1943 1436, 1438, 47, 47, 1439, 160, 1446, 1455, 1451, 159, 1944 1440, 1456, 870, 1460, 1370, 1205, 653, 602, 653, 1536, 1945 1457, 1458, 653, 879, 1465, 653, 1470, 47, 1544, 372, 1946 55, 220, 175, 653, 1078, 175, 1358, 653, 1472, 1078, 1947 1474, 1476, 1478, 68, 1360, 1361, 1362, 1480, 1482, 105, 1948 68, 1483, 1488, 479, 1489, 1490, 1501, 1078, 1511, 1078, 1949 479, 1519, 1513, 1078, 1124, 1515, 1078, 1527, 258, 1520, 1950 75, 1542, 460, 1547, 1078, 460, 1543, 75, 1078, 339, 1951 1554, 175, 1556, 105, 213, 1558, 1564, 54, 327, 1571, 1952 1572, 1223, 1397, 808, 54, 807, 1324, 55, 809, 212, 1953 214, 455, 810, 68, 1219, 811, 1522, 1433, 1574, 231, 1954 328, 1389, 1257, 479, 347, 728, 1504, 241, 258, 349, 1955 1406, 1229, 942, 1108, 2, 205, 4, 5, 6, 7, 1956 75, 495, 531, 694, 531, 729, 213, 531, 951, 695, 1957 531, 1110, 1142, 826, 175, 1057, 1120, 54, 900, 405, 1958 1334, 212, 214, 227, 816, 339, 742, 973, 8, 9, 1959 10, 11, 12, 0, 423, 817, 965, 428, 430, 818, 1960 347, 347, 159, 1444, 0, 0, 0, 0, 0, 213, 1961 0, 0, 0, 0, 0, 0, 105, 31, 0, 35, 1962 55, 36, 0, 447, 212, 214, 0, 450, 175, 451, 1963 37, 0, 173, 174, 40, 175, 0, 0, 466, 105, 1964 0, 41, 42, 1018, 64, 34, 105, 829, 0, 480, 1965 37, 0, 182, 183, 40, 0, 0, 0, 0, 487, 1966 0, 41, 42, 0, 0, 0, 0, 430, 517, 0, 1967 213, 0, 0, 0, 0, 0, 123, 126, 127, 0, 1968 728, 534, 535, 0, 0, 212, 214, 698, 0, 410, 1969 728, 0, 0, 556, 0, 0, 0, 700, 0, 105, 1970 0, 0, 0, 0, 175, 728, 0, 0, 213, 0, 1971 0, 0, 213, 8, 9, 10, 11, 12, 0, 0, 1972 486, 175, 0, 212, 214, 175, 0, 212, 214, 535, 1973 0, 0, 0, 0, 0, 258, 0, 829, 603, 0, 1974 0, 455, 31, 506, 631, 0, 0, 253, 0, 254, 1975 0, 0, 0, 0, 0, 0, 0, 636, 0, 0, 1976 455, 636, 55, 55, 258, 535, 0, 460, 0, 0, 1977 34, 0, 0, 0, 729, 37, 1388, 182, 183, 40, 1978 0, 495, 1125, 323, 0, 55, 41, 42, 175, 0, 1979 37, 0, 182, 183, 40, 0, 0, 0, 0, 213, 1980 0, 41, 42, 0, 0, 55, 37, 0, 182, 183, 1981 40, 480, 184, 0, 212, 214, 0, 41, 42, 0, 1982 0, 37, 185, 173, 174, 40, 349, 1532, 0, 410, 1983 395, 480, 41, 42, 870, 0, 0, 1533, 0, 480, 1984 414, 415, 0, 184, 0, 419, 0, 421, 422, 0, 1985 347, 347, 0, 185, 0, 0, 0, 0, 371, 55, 1986 0, 0, 0, 0, 55, 724, 0, 0, 430, 0, 1987 166, 0, 171, 0, 0, 177, 178, 179, 0, 181, 1988 213, 0, 0, 738, 0, 64, 0, 0, 0, 0, 1989 0, 0, 0, 430, 232, 212, 214, 430, 55, 8, 1990 9, 10, 11, 12, 728, 728, 247, 248, 0, 729, 1991 0, 0, 212, 0, 0, 455, 829, 0, 0, 729, 1992 37, 0, 182, 183, 40, 0, 258, 349, 31, 0, 1993 213, 41, 42, 0, 729, 1505, 0, 1509, 0, 0, 1994 0, 0, 794, 795, 796, 212, 214, 37, 0, 173, 1995 174, 40, 0, 0, 175, 0, 34, 264, 41, 42, 1996 0, 0, 728, 728, 0, 0, 0, 265, 0, 0, 1997 0, 0, 1538, 819, 1540, 347, 0, 460, 0, 0, 1998 0, 0, 0, 0, 375, 535, 0, 175, 0, 0, 1999 0, 636, 832, 0, 603, 0, 460, 0, 959, 0, 2000 610, 55, 0, 175, 0, 851, 0, 0, 960, 0, 2001 0, 0, 0, 0, 0, 0, 0, 1569, 175, 1570, 2002 0, 0, 0, 603, 55, 0, 0, 0, 603, 0, 2003 0, 55, 1577, 1578, 636, 339, 0, 349, 349, 349, 2057 2004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2058 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 2059 0, 79, 482, 0, 0, 351, 8, 9, 10, 11, 2060 12, 0, 0, 0, 962, 354, 356, 432, 0, 58, 2061 0, 79, 0, 1535, 0, 0, 0, 81, 0, 79, 2062 0, 0, 1543, 0, 0, 31, 0, 0, 1124, 0, 2063 0, 261, 737, 0, 0, 0, 0, 990, 0, 58, 2064 0, 0, 216, 0, 0, 356, 0, 354, 0, 0, 2065 0, 0, 0, 34, 0, 226, 0, 354, 37, 354, 2066 185, 186, 40, 356, 224, 79, 0, 354, 0, 41, 2067 42, 354, 0, 0, 723, 0, 0, 0, 0, 414, 2068 43, 0, 0, 0, 723, 0, 351, 0, 635, 0, 2069 0, 1023, 0, 635, 830, 1531, 0, 412, 723, 0, 2070 0, 0, 0, 0, 46, 47, 356, 0, 1034, 0, 2005 73, 0, 0, 213, 0, 0, 349, 0, 0, 0, 2006 1125, 0, 0, 0, 0, 0, 0, 0, 212, 214, 2007 0, 0, 0, 0, 724, 0, 0, 0, 0, 0, 2008 0, 213, 73, 0, 55, 480, 213, 0, 0, 0, 2009 258, 738, 0, 0, 938, 0, 212, 214, 0, 0, 2010 0, 212, 214, 0, 0, 0, 1331, 0, 0, 0, 2011 0, 0, 0, 0, 0, 175, 0, 221, 0, 535, 2012 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 2013 349, 0, 0, 729, 729, 0, 0, 0, 728, 964, 2014 0, 0, 430, 0, 0, 0, 728, 728, 728, 0, 2015 0, 460, 0, 1125, 0, 0, 0, 0, 0, 0, 2016 0, 0, 0, 601, 608, 994, 258, 738, 0, 0, 2017 0, 0, 992, 0, 213, 632, 633, 0, 0, 125, 2018 125, 125, 0, 0, 0, 0, 0, 0, 213, 212, 2019 214, 729, 729, 0, 728, 0, 0, 0, 0, 0, 2020 0, 0, 0, 212, 214, 352, 0, 0, 0, 724, 2021 0, 0, 535, 0, 0, 0, 0, 0, 0, 724, 2022 0, 0, 349, 506, 636, 0, 0, 1024, 636, 832, 2023 0, 0, 821, 822, 724, 0, 0, 0, 0, 0, 2024 0, 0, 0, 0, 1035, 0, 0, 0, 0, 0, 2025 125, 0, 125, 0, 0, 0, 1125, 8, 9, 10, 2026 11, 12, 856, 0, 0, 859, 860, 0, 863, 0, 2027 865, 866, 0, 0, 0, 867, 868, 274, 0, 448, 2028 0, 175, 213, 0, 0, 0, 31, 0, 1507, 0, 2029 1507, 0, 0, 0, 0, 0, 64, 212, 214, 0, 2030 73, 0, 0, 0, 0, 73, 412, 0, 0, 0, 2031 0, 0, 0, 420, 34, 0, 0, 0, 636, 37, 2032 0, 182, 183, 40, 0, 1507, 0, 1507, 0, 0, 2033 41, 42, 0, 125, 0, 1332, 0, 0, 0, 0, 2034 0, 125, 0, 125, 125, 0, 0, 0, 125, 0, 2035 125, 125, 0, 0, 1117, 323, 1532, 0, 410, 943, 2036 944, 0, 430, 116, 0, 946, 1533, 729, 0, 8, 2037 9, 10, 11, 12, 0, 729, 729, 729, 0, 0, 2038 349, 0, 0, 0, 0, 412, 0, 0, 0, 8, 2039 9, 10, 11, 12, 0, 0, 0, 0, 31, 0, 2040 221, 0, 0, 0, 0, 0, 535, 0, 0, 0, 2041 0, 0, 0, 0, 0, 603, 0, 0, 31, 0, 2042 125, 0, 0, 729, 0, 0, 34, 0, 428, 0, 2043 0, 37, 0, 724, 724, 40, 349, 349, 0, 0, 2044 0, 584, 41, 42, 0, 0, 34, 517, 0, 588, 2045 0, 37, 591, 182, 183, 40, 1204, 0, 0, 0, 2046 0, 0, 41, 42, 0, 0, 0, 73, 43, 0, 2047 0, 76, 0, 0, 213, 0, 0, 0, 146, 0, 2048 0, 0, 352, 0, 0, 0, 0, 73, 264, 212, 2049 214, 724, 724, 0, 0, 73, 0, 636, 265, 0, 2050 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 2051 0, 0, 0, 0, 0, 412, 0, 0, 0, 420, 2052 0, 352, 0, 0, 1508, 0, 1508, 0, 544, 545, 2053 546, 547, 548, 549, 550, 551, 552, 553, 222, 352, 2054 0, 73, 0, 0, 952, 0, 953, 0, 0, 0, 2055 0, 0, 0, 956, 957, 0, 738, 0, 962, 0, 2056 0, 1508, 554, 1508, 535, 8, 9, 10, 11, 12, 2057 967, 0, 0, 0, 0, 971, 0, 0, 0, 175, 2058 0, 0, 0, 352, 0, 0, 0, 0, 0, 0, 2059 0, 0, 0, 0, 31, 0, 0, 0, 0, 1301, 2060 0, 1000, 0, 0, 412, 0, 0, 0, 0, 0, 2061 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 2062 0, 64, 34, 0, 0, 0, 354, 37, 0, 0, 2063 0, 40, 0, 0, 0, 724, 0, 738, 41, 42, 2064 0, 116, 0, 0, 0, 0, 601, 0, 352, 0, 2065 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 2066 0, 0, 0, 0, 744, 0, 0, 724, 0, 212, 2067 214, 0, 0, 0, 745, 724, 724, 724, 0, 0, 2068 0, 0, 0, 0, 0, 0, 349, 349, 0, 0, 2069 0, 0, 0, 352, 352, 352, 584, 584, 0, 0, 2070 1204, 0, 0, 1045, 1046, 1047, 1048, 0, 1050, 0, 2071 0, 0, 352, 0, 0, 0, 0, 0, 0, 0, 2072 0, 76, 0, 724, 1094, 0, 76, 0, 0, 0, 2073 352, 0, 0, 0, 116, 125, 125, 0, 1100, 0, 2074 0, 73, 0, 0, 0, 0, 0, 352, 0, 1234, 2075 0, 213, 0, 0, 0, 0, 175, 0, 0, 0, 2076 0, 0, 0, 0, 0, 125, 212, 214, 125, 125, 2077 0, 125, 0, 125, 125, 0, 0, 1116, 125, 125, 2078 0, 0, 0, 73, 0, 911, 352, 0, 0, 914, 2079 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2080 18, 19, 20, 21, 22, 23, 24, 25, -294, 0, 2081 0, 349, 0, 0, 0, 0, 0, 1144, 0, 31, 2082 0, 222, 412, 352, 1152, 0, 0, 0, 0, 1156, 2083 0, 0, 0, 0, 1160, 0, 1161, 116, 0, 0, 2084 1163, 1164, 1165, 0, 0, 1168, 0, 34, 0, 0, 2085 0, 0, 0, 0, 1180, 0, 0, 125, -294, 0, 2086 1204, 0, 125, 125, 0, 352, 0, 1204, 125, 0, 2087 0, 0, 1195, 1196, 1323, 352, 0, 0, 352, 0, 2088 0, 0, 0, 221, 0, 352, 0, 0, 76, 0, 2089 352, 0, 0, 0, 0, 0, 0, 0, 0, 1226, 2090 0, 0, 1228, 354, 0, 0, 0, 0, 76, 0, 2091 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 2092 1204, 0, 0, 0, 0, 0, 0, 1557, 0, 0, 2093 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 2094 0, 1244, 354, 0, 0, 0, 0, 1248, 1249, 0, 2095 0, 0, 73, 0, 0, 0, 0, 0, 0, 1260, 2096 354, 0, 76, 78, 1264, 0, 0, 1268, 0, 1269, 2097 0, 0, 1271, 0, 0, 0, 0, 0, 0, 0, 2098 0, 0, 0, 0, 0, 1279, 0, 0, 0, 0, 2099 0, 0, 0, 0, 0, 78, 281, 282, 1286, 283, 2100 1288, 1289, 1290, 1291, 354, 0, 0, 0, 0, 0, 2101 0, 0, 0, 0, 0, 0, 1298, 0, 1299, 0, 2102 0, 0, 171, 0, 0, 284, 0, 0, 0, 0, 2103 223, 649, 0, 138, 139, 286, 352, 0, 287, 650, 2104 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2105 412, 1327, 1328, 293, 0, 0, 0, 0, 0, 0, 2106 0, 0, 0, 0, 0, 0, 0, 0, 294, 354, 2107 651, 0, 652, 379, 0, 0, 0, 296, 380, 298, 2108 299, 300, 301, 0, 0, 0, 0, 0, 0, 352, 2109 352, 0, 352, 352, 0, 0, 0, 0, 0, 0, 2110 0, 0, 0, 1363, 1364, 0, 0, 0, 0, 0, 2111 0, 0, 73, 1374, 354, 354, 354, 0, 355, 0, 2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 2113 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 2114 0, 0, 0, 0, 0, 1170, 0, 352, 352, 0, 2115 0, 354, 0, 0, 0, 0, 0, 0, 0, 0, 2116 0, 0, 76, 0, 0, 1407, 0, 0, 354, 0, 2117 0, 0, 0, 0, 0, 0, 0, 1411, 0, 1412, 2118 1413, 1414, 281, 282, 0, 283, 0, 0, 0, 0, 2119 0, 1418, 0, 0, 0, 0, 0, 0, 0, 0, 2120 1429, 0, 0, 0, 76, 0, 0, 354, 0, 0, 2121 0, 284, 352, 78, 0, 0, 1442, 285, 78, 0, 2122 0, 286, 1238, 0, 287, 288, 289, 290, 41, 42, 2123 0, 291, 292, 0, 0, 0, 0, 0, 85, 293, 2124 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 2125 0, 0, 125, 0, 294, 221, 378, 0, 0, 379, 2126 0, 0, 0, 296, 380, 298, 299, 300, 301, 0, 2127 85, 0, 1491, 1492, 0, 0, 0, 73, 0, 0, 2128 0, 0, 0, 0, 0, 1497, 354, 0, 0, 0, 2129 0, 352, 1497, 352, 0, 0, 354, 0, 0, 354, 2130 0, 0, 0, 0, 222, 224, 354, 0, 0, 0, 2131 0, 354, 0, 223, 0, 0, 0, 0, 0, 0, 2132 0, 0, 0, 352, 0, 1531, 0, 0, 0, 1537, 2133 0, 352, 352, 352, 0, 0, 0, 0, 0, 0, 2134 0, 0, 352, 352, 0, 0, 0, 0, 0, 0, 2135 0, 0, 0, 0, 0, 0, 73, 0, 1559, 0, 2136 1560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2137 0, 0, 0, 76, 0, 0, 0, 125, 0, 352, 2138 78, 0, 0, 0, 0, 0, 0, 0, 1575, 1576, 2139 0, 0, 0, 362, 0, 355, 1579, 1580, 0, 0, 2140 78, 0, 0, 0, 0, 0, -519, 0, 78, 1, 2141 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2142 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2143 22, 23, 24, 25, 355, 0, 26, 27, 28, 29, 2144 0, 0, 30, 0, 0, 31, 32, 0, 0, 0, 2145 0, 0, 355, 0, 78, 0, 0, 354, 0, 0, 2146 0, 0, 0, 0, 0, 0, 0, 352, 0, 0, 2147 33, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2148 38, 39, 40, 0, 0, 0, 0, 0, 85, 41, 2149 42, 0, 0, 85, 0, 0, 355, 0, 1034, 0, 2150 0, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2151 354, 354, 0, 354, 354, 43, 73, 44, 0, 0, 2152 0, 0, 0, 73, 0, 45, 0, 0, 281, 282, 2153 31, 283, 0, 76, 0, 8, 9, 10, 11, 12, 2154 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2155 23, 24, 25, -295, 0, 0, 0, 284, 34, 0, 2156 0, 355, 0, 285, 31, 0, 0, 286, 354, 354, 2157 287, 288, 289, 290, 41, 42, 73, 291, 292, 0, 2158 0, 0, 0, 0, 0, 293, 0, 0, 224, 0, 2159 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 2160 294, 0, 378, -295, 0, 0, 355, 355, 355, 296, 2161 827, 298, 299, 300, 301, 0, 0, 0, 0, 0, 2162 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 2163 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 2164 0, 0, 0, 355, 0, 0, 0, 0, 0, 0, 2165 0, 0, 0, 0, 78, 85, 0, 0, 0, 164, 2166 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2167 362, 0, 0, 0, 0, 85, 222, 0, 217, 0, 2168 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 2169 0, 0, 0, 0, 0, 0, 78, 0, 76, 355, 2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 2171 0, 0, 354, 0, 354, 0, 0, 0, 0, 0, 2172 0, 0, 0, 0, 164, 0, 0, 362, 0, 85, 2173 271, 0, 0, 0, 0, 0, 355, 0, 0, 0, 2174 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 2175 0, 0, 354, 354, 354, 0, 0, 0, 0, 164, 2176 0, 0, 0, 354, 354, 0, 0, 0, 0, 368, 2177 0, 362, 0, 374, 0, 0, 0, 76, 355, 0, 2178 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 2179 0, 355, 0, 0, 0, 0, 223, 0, 355, 0, 2180 354, 0, 0, 355, 8, 9, 10, 11, 12, 13, 2181 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2182 24, 25, 164, 0, 26, 27, 28, 0, 0, 0, 2183 0, 0, 0, 31, 217, 0, 362, 0, 0, 0, 2071 2184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2072 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 2073 0, 1124, 0, 76, 0, 0, 0, 0, 0, 0, 2074 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 2075 0, 0, 1387, 0, 0, 0, 0, 88, 1157, 0, 2076 67, 0, 0, 1506, 0, 1506, 0, 0, 0, 0, 2077 356, 0, 0, 0, 0, 1169, 0, 0, 0, 0, 2078 0, 0, 635, 8, 9, 10, 11, 12, 0, 0, 2079 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 2080 1506, 0, 1506, 0, 0, 0, 0, 0, 0, 0, 2081 0, 0, 31, 0, 356, 356, 356, 354, 1116, 0, 2082 349, 0, 216, 0, 0, 0, 432, 119, 0, 0, 2083 324, 0, 0, 356, 0, 0, 0, 0, 81, 0, 2084 34, 0, 0, 81, 351, 37, 0, 185, 186, 40, 2085 0, 356, 1237, 0, 0, 0, 41, 42, 0, 0, 2086 0, 0, 79, 0, 0, 0, 0, 43, 356, 0, 2087 0, 354, 354, 0, 354, 354, 0, 0, 0, 58, 2088 602, 0, 187, 364, 0, 0, 0, 0, 0, 0, 2089 0, 46, 47, 430, 76, 0, 0, 0, 723, 723, 2090 0, 351, 351, 0, 79, 0, 0, 356, 0, 0, 2091 0, 1504, 0, 1508, 0, 0, 0, 0, 0, 216, 2092 349, 1203, 0, 0, 0, 0, 0, 0, 0, 354, 2093 354, 0, 0, 0, 0, 0, 0, 226, 0, 0, 2094 0, 0, 0, 0, 356, 0, 0, 0, 1537, 0, 2095 1539, 0, 0, 0, 0, 0, 723, 723, 0, 126, 2096 129, 130, 635, 0, 0, 0, 0, 0, 0, 0, 2097 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 2098 0, 0, 0, 88, 349, 0, 356, 0, 0, 0, 2099 0, 0, 0, 1568, 354, 1569, 356, 0, 356, 0, 2100 0, 0, 0, 225, 81, 0, 356, 0, 1576, 1577, 2101 356, 0, 0, 0, 0, 0, 0, 0, 0, 357, 2102 0, 737, 0, 0, 81, 0, 0, 0, 349, 349, 2103 349, 0, 81, 256, 0, 257, 0, 224, 0, 0, 2104 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 2105 0, 0, 0, 0, 0, 0, 0, 0, 357, 76, 2106 0, 0, 0, 0, 1300, 0, 0, 0, 0, 0, 2107 0, 0, 79, 354, 0, 354, 357, 227, 81, 0, 2108 0, 0, 261, 0, 0, 0, 67, 0, 0, 0, 2185 0, 0, 164, 461, 0, 0, 0, 0, 0, 0, 2186 0, 34, 0, 0, 0, 78, 0, 0, 206, 39, 2187 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 2188 0, 362, 362, 362, 164, 0, 0, 0, 354, 0, 2189 0, 0, 0, 0, 514, 0, 516, 519, 0, 0, 2190 362, 0, 0, 0, 522, 523, 0, 0, 461, 516, 2191 516, 164, 0, 270, 0, 0, 0, 0, 362, 0, 2192 0, 516, 0, 0, 0, 0, 0, 0, 0, 85, 2193 0, 0, 0, 0, 0, 362, 0, 76, 281, 282, 2194 0, 283, 0, 0, 76, 0, 0, 0, 0, 355, 2195 0, 0, 0, 0, 0, 0, 0, 516, 606, 0, 2196 0, 0, 0, 630, 0, 0, 0, 284, 0, 0, 2197 0, 85, 0, 285, 362, 0, 0, 286, 0, 0, 2198 287, 288, 289, 290, 41, 42, 0, 291, 292, 0, 2199 0, 0, 0, 516, 0, 293, 0, 76, 0, 0, 2200 0, 0, 355, 355, 0, 355, 355, 0, 0, 0, 2201 294, 362, 378, 0, 0, 0, 0, 0, 812, 296, 2202 380, 298, 299, 300, 301, 78, 0, 0, 0, 0, 2203 0, 0, 0, 0, 0, 210, 0, 0, 0, 164, 2204 164, 0, 0, 0, 0, 230, 368, 234, 0, 236, 2205 0, 0, 0, 362, 0, 0, 245, 0, 0, 0, 2206 355, 355, 0, 362, 0, 0, 362, 461, 0, 0, 2207 461, 224, 0, 362, 0, 0, 0, 0, 362, 0, 2208 0, 0, 0, 0, 0, 0, 0, 210, 0, 234, 2209 236, 245, 0, 0, 0, 0, 0, 0, 0, 0, 2210 0, 0, 0, 741, 0, 0, 0, 0, 0, 0, 2211 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 2212 0, 0, 0, 0, 0, 355, 0, 461, 0, 461, 2213 210, 0, 461, 0, 164, 461, 0, 0, 0, 0, 2214 85, 0, 0, 0, 0, 0, 0, 368, 0, 0, 2109 2215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2110 723, 0, 737, 0, 0, 354, 119, 0, 0, 0, 2111 0, 0, 0, 354, 354, 354, 397, 0, 0, 357, 2112 0, 349, 0, 0, 354, 354, 416, 417, 0, 0, 2113 0, 421, 723, 423, 424, 0, 0, 0, 76, 0, 2114 723, 723, 723, 0, 88, 0, 0, 0, 0, 0, 2115 0, 351, 351, 0, 0, 0, 356, 0, 0, 364, 2116 0, 354, 0, 0, 88, 1203, 0, 0, 0, 0, 2117 0, 0, 88, 0, 8, 9, 10, 11, 12, 0, 2118 0, 0, 0, 357, 0, 0, 0, 0, 723, 0, 2119 0, 0, 0, 0, 0, 0, 0, 0, 364, 119, 2120 0, 0, 0, 31, 0, 8, 9, 10, 11, 12, 2121 356, 356, 349, 356, 356, 0, 364, 0, 88, 0, 2122 349, 0, 0, 0, 0, 0, 0, 357, 357, 357, 2123 0, 34, 0, 79, 31, 0, 37, 0, 185, 186, 2124 40, 0, 0, 0, 0, 0, 357, 41, 42, 354, 2125 0, 0, 0, 0, 0, 0, 0, 0, 43, 364, 2126 0, 0, 34, 0, 357, 0, 0, 37, 356, 356, 2127 0, 40, 0, 267, 0, 81, 351, 0, 41, 42, 2128 0, 357, 46, 47, 0, 0, 58, 0, 0, 43, 2129 0, 0, 0, 0, 169, 0, 174, 0, 76, 180, 2130 181, 182, 119, 184, 44, 76, 0, 0, 0, 0, 2131 0, 0, 0, 46, 47, 0, 0, 81, 235, 0, 2132 357, 0, 0, 364, 0, 1203, 0, 0, 0, 0, 2133 250, 251, 1203, 356, 8, 9, 10, 11, 12, 0, 2216 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 2217 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 2218 516, 516, 516, 516, 516, 516, 516, 516, 0, 0, 2219 78, 210, 0, 234, 236, 245, 0, 0, 0, 0, 2220 164, 0, 0, 0, 355, 0, 355, 0, 0, 0, 2221 0, 0, 368, 516, 606, 0, 0, 837, 0, 0, 2222 0, 0, 0, 0, 362, 0, 0, 0, 0, 210, 2223 0, 0, 0, 210, 0, 0, 355, 0, 0, 0, 2224 0, 0, 0, 606, 355, 355, 355, 0, 606, 504, 2225 0, 0, 0, 0, 0, 355, 355, 368, 368, 368, 2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 2227 0, 0, 0, 0, 0, 0, 368, 362, 362, 0, 2228 362, 362, 0, 0, 0, 0, 0, 0, 0, 0, 2229 0, 0, 355, 0, 0, 0, 0, 0, 0, 210, 2230 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2231 0, 741, 516, 0, 0, 0, 0, 0, 0, 0, 2232 210, 0, 0, 0, 0, 234, 236, 155, 0, 0, 2233 0, 0, 461, 245, 516, 362, 362, 0, 0, 0, 2234 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 2235 368, 0, 961, 8, 9, 10, 11, 12, 13, 14, 2236 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2237 25, 0, 0, 250, 0, 0, 210, 0, 0, 0, 2238 355, 0, 31, 255, 0, 0, 0, 741, 0, 0, 2239 0, 0, 0, 516, 210, 0, 0, 0, 0, 210, 2240 362, 210, 0, 0, 0, 0, 0, 0, 0, 0, 2241 34, 0, 0, 0, 0, 0, 0, 0, 210, 0, 2242 0, 210, 210, 0, 0, 516, 0, 0, 0, 78, 2243 0, 0, 0, 0, 0, 0, 78, 210, 0, 155, 2244 516, 0, 368, 224, 0, 0, 630, 0, 0, 368, 2245 0, 210, 0, 385, 0, 0, 0, 0, 210, 0, 2246 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 2247 0, 0, 0, 0, 0, 0, 417, 0, 0, 362, 2248 0, 362, 0, 0, 0, 0, 0, 0, 0, 78, 2249 432, 0, 0, 0, 0, 0, 0, 0, 0, 437, 2250 0, 0, 0, 0, 0, 0, 0, 0, 0, 445, 2251 0, 362, 0, 0, 0, 0, 0, 0, 0, 362, 2252 362, 362, 0, 0, 0, 0, 0, 0, 0, 0, 2253 362, 362, 0, 0, 471, 0, 0, 0, 0, 481, 2254 0, 0, 461, 0, 85, 0, 0, 0, 0, 0, 2255 0, 0, 489, 0, 0, 0, 0, 0, 499, 0, 2256 503, 461, 0, 0, 0, 0, 0, 362, 0, 0, 2257 0, 0, 0, 0, 210, 0, 0, 0, 533, 0, 2258 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 2259 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, 2260 368, 0, 210, 0, 0, 0, 0, 210, 0, 0, 2134 2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2135 0, 0, 0, 58, 0, 0, 0, 357, 76, 0, 2136 0, 0, 0, 31, 0, 0, 0, 364, 364, 364, 2137 349, 0, 0, 0, 0, 0, 225, 0, 516, 0, 2138 518, 521, 0, 0, 0, 1203, 364, 0, 524, 525, 2139 0, 34, 1556, 0, 0, 0, 37, 0, 79, 357, 2140 40, 0, 518, 518, 364, 0, 0, 41, 42, 357, 2141 0, 357, 356, 0, 356, 88, 226, 0, 43, 357, 2142 0, 364, 0, 357, 0, 0, 0, 349, 349, 0, 2143 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, 2144 518, 0, 46, 47, 356, 284, 285, 58, 286, 0, 2145 0, 0, 356, 356, 356, 0, 0, 88, 0, 0, 2146 364, 0, 0, 356, 356, 0, 0, 0, 0, 0, 2147 0, 0, 0, 0, 287, 0, 518, 79, 0, 0, 2148 648, 0, 141, 142, 289, 81, 0, 290, 649, 292, 2149 293, 41, 42, 0, 294, 295, 0, 364, 0, 0, 2150 356, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2151 0, 0, 0, 0, 0, 820, 821, 296, 0, 650, 2152 0, 651, 381, 0, 0, 0, 46, 47, 298, 299, 2153 300, 301, 0, 0, 0, 0, 0, 0, 0, 364, 2154 0, 0, 0, 0, 854, 0, 0, 857, 858, 364, 2155 861, 364, 863, 864, 0, 0, 227, 865, 866, 364, 2156 0, 0, 0, 364, 0, 0, 0, 0, 0, 357, 2262 0, 593, 516, 0, 0, 0, 598, 0, 0, 0, 2263 0, 0, 0, 0, 516, 606, 0, 0, 0, 0, 2157 2264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2158 0, 0, 0, 0, 0, 599, 0, 607, 356, 58, 2159 58, 0, 0, 0, 0, 0, 0, 0, 631, 632, 2265 0, 0, 0, 0, 644, 362, 368, 368, 645, 646, 2266 0, 648, 0, 0, 0, 0, 0, 0, 660, 661, 2267 0, 662, 663, 0, 664, 516, 665, 0, 0, 0, 2268 0, 0, 1178, 0, 0, 8, 9, 10, 11, 12, 2269 0, 0, 0, 593, 0, 210, 0, 0, 0, 0, 2270 0, 680, 0, 0, 85, 0, 0, 0, 0, 210, 2271 0, 85, 281, 282, 31, 283, 461, 0, 0, 0, 2272 0, 0, 0, 0, 0, 0, 691, 0, 0, 504, 2273 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 2274 0, 284, 34, 0, 0, 0, 0, 285, 516, 0, 2275 0, 286, 0, 0, 287, 288, 289, 290, 41, 42, 2276 733, 291, 292, 0, 85, 0, 736, 0, 0, 293, 2277 0, 471, 0, 0, 0, 0, 741, 0, 0, 0, 2278 0, 0, 0, 0, 294, 0, 378, 0, 0, 0, 2279 210, 0, 516, 296, 1179, 298, 299, 300, 301, 0, 2280 0, 0, 0, 210, 0, 0, 516, 516, 773, 0, 2281 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 2282 0, 0, 210, 0, 788, 0, 0, 0, 0, 0, 2283 0, 204, 2, 205, 4, 5, 6, 7, 8, 9, 2284 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2285 20, 21, 22, 23, 24, 25, 0, 741, 26, 27, 2286 28, 815, 0, 0, 0, 0, 0, 31, 0, 0, 2287 825, 0, 0, 0, 0, 0, 0, 828, 0, 0, 2288 0, 0, 835, 0, 0, 0, 0, 0, 0, 0, 2289 0, 0, 0, 850, 0, 34, 0, 35, 0, 36, 2290 37, 0, 206, 39, 40, 0, 368, 368, 0, 210, 2291 0, 41, 42, 0, 0, 217, 0, 0, 0, 0, 2160 2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2161 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 2162 0, 0, 0, 357, 357, 88, 357, 357, 0, 0, 2163 0, 0, 58, 0, 0, 0, 0, 79, 0, 0, 2164 0, 941, 942, 0, 79, 0, 81, 944, 0, 0, 2165 0, 518, 518, 518, 518, 518, 518, 518, 518, 518, 2166 518, 518, 518, 518, 518, 518, 518, 518, 518, 0, 2167 0, 284, 285, 0, 286, 0, 0, 349, 349, 0, 2168 0, 357, 357, 0, 0, 0, 58, 0, 0, 0, 2169 0, 58, 0, 0, 0, 0, 0, 79, 0, 0, 2170 287, 0, 0, 0, 0, 0, 288, 0, 0, 364, 2171 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2172 294, 295, 0, 0, 0, 58, 0, 0, 43, 0, 2293 0, 0, 0, 0, 890, 210, 0, 43, 0, 207, 2294 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 2173 2295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2174 0, 0, 0, 296, 0, 380, 357, 0, 381, 0, 2175 0, 0, 46, 47, 298, 299, 300, 301, 0, 0, 2176 0, 0, 0, 364, 364, 0, 364, 364, 0, 0, 2296 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 2297 835, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2298 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2299 22, 23, 24, 25, -294, 210, 26, 27, 28, 0, 2300 0, 0, 0, 0, 0, 31, 210, 0, 0, 0, 2301 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 2302 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 2303 0, 368, 0, 34, 516, 968, 969, 0, 0, 0, 2304 38, 39, 0, 0, -294, 0, 0, 0, 0, 986, 2177 2305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2178 0, 0, 0, 0, 0, 0, 88, 0, 0, 226, 2179 0, 0, 518, 0, 0, 0, 0, 0, 0, 0, 2180 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, 2181 0, 81, 0, 0, 518, 0, 0, 0, 0, 0, 2182 0, 364, 364, 0, 0, 357, 0, 357, 58, 0, 2306 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 2307 0, 0, 1006, 0, 0, 643, 0, 338, 0, 0, 2308 0, 0, 0, 0, 0, 110, 0, 0, 210, 461, 2309 0, 461, 0, 0, 0, 0, 0, 0, 0, 0, 2310 0, 0, 0, 0, 0, 0, 0, 516, 516, 0, 2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2312 281, 282, 0, 283, 0, 0, 461, 0, 461, 0, 2313 0, 0, 0, 0, 0, 0, 0, 0, 1039, 0, 2314 0, 0, 0, 0, 0, 1040, 0, 0, 0, 284, 2315 0, 0, 0, 0, 0, 285, 164, 0, 1042, 286, 2316 1043, 0, 287, 288, 289, 290, 41, 42, 0, 291, 2317 292, 0, 0, 0, 1055, 210, 0, 293, 0, 0, 2318 0, 1059, 0, 0, 0, 0, 0, 0, 0, 0, 2319 0, 0, 294, 1097, 378, 0, 1098, 0, 0, 781, 2320 0, 296, 380, 298, 299, 300, 301, 0, 0, 0, 2321 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, 2322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2323 0, 0, 0, 0, 341, 363, 0, 0, 0, 0, 2324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2326 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 2327 0, 0, 210, 0, 0, 413, 0, 1, 2, 3, 2328 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2329 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2330 24, 25, 0, 1162, 26, 27, 28, 29, 0, 0, 2331 30, 0, 0, 31, 32, 8, 9, 10, 11, 12, 2332 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2333 23, 24, 25, 0, 0, 26, 27, 28, 33, 0, 2334 0, 34, 0, 35, 31, 36, 37, 413, 38, 39, 2335 40, 0, 0, 0, 0, 0, 0, 41, 42, 533, 2336 0, 0, 0, 0, 0, 0, 1227, 0, 0, 0, 2337 0, 0, 34, 0, 0, 0, 0, 0, 0, 38, 2338 39, 0, 0, 43, 0, 44, 0, 0, 0, -523, 2339 0, 0, 0, 45, 0, 321, 1241, 0, 0, 0, 2340 0, 1243, 0, 413, 0, 345, 0, 0, 0, 1247, 2341 0, 413, 589, 0, 413, 592, 0, 381, 381, 0, 2342 0, 0, 0, 0, 363, 0, 0, 0, 622, 0, 2343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2344 1273, 0, 0, 0, 0, 0, 0, 640, 0, 0, 2345 341, 0, 1281, 0, 0, 1282, 0, 1283, 0, 0, 2346 281, 282, 0, 283, 0, 0, 0, 0, 0, 0, 2347 0, 1292, 1293, 0, 0, 0, 0, 413, 0, 0, 2348 0, 413, 0, 0, 0, 0, 0, 0, 321, 284, 2349 0, 0, 0, 1306, 0, 285, 0, 0, 0, 286, 2350 0, 0, 287, 288, 289, 290, 41, 42, 0, 291, 2351 292, 0, 363, 485, 0, 0, 0, 293, 0, 0, 2352 1329, 0, 0, 0, 0, 0, 0, 0, 210, 0, 2353 0, 0, 294, 0, 378, 413, 0, 993, 0, 0, 2354 0, 296, 380, 298, 299, 300, 301, 0, 0, 0, 2355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2356 0, 0, 0, 0, 0, 0, 413, 0, 0, 363, 2357 0, 0, 0, 0, 1, 2, 205, 4, 5, 6, 2358 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2359 17, 18, 19, 20, 21, 22, 23, 24, 25, -294, 2360 0, 26, 27, 28, 29, 0, 0, 30, 0, 413, 2361 31, 0, 341, 363, 0, 0, 0, 0, 1399, 0, 2362 1400, 0, 0, 0, 0, 0, 0, 0, 0, 381, 2363 0, 0, 0, 1409, 0, 1410, 0, 0, 34, 0, 2364 35, 0, 36, 0, 0, 38, 39, 0, 0, -294, 2365 0, 0, 0, 1417, 0, 0, 0, 0, 413, 413, 2366 0, 0, 0, 0, 0, 0, 0, 0, 0, 1435, 2367 1437, 0, 0, 0, 0, 0, 0, 830, 363, 0, 2368 363, 1443, 44, 0, 1247, 0, 0, 0, 0, 622, 2369 110, 622, 622, 0, 0, 0, 0, 0, 622, 0, 2370 0, 0, 0, 0, 0, 0, 1466, 0, 869, 363, 2371 0, 0, 0, 0, 363, 1473, 0, 0, 1475, 0, 2372 1477, 1479, 1481, 363, 363, 363, 0, 0, 0, 0, 2373 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 2374 0, 0, 363, 0, 0, 0, 0, 413, 912, 0, 2375 0, 413, 915, 0, 0, 0, 0, 0, 917, 0, 2376 0, 0, 1512, 0, 1514, 0, 0, 1247, 0, 0, 2377 769, 0, 0, 0, 0, 0, 341, 363, 413, 0, 2378 413, 0, 1526, 782, 413, 0, 0, 0, 0, 0, 2379 769, 0, 0, 769, 0, 0, 0, 0, 0, 0, 2380 0, 0, 0, 0, 792, 793, 0, 0, 0, 0, 2381 0, 0, 0, 0, 0, 0, 363, 622, 0, 0, 2382 0, 0, 0, 0, 0, 0, 814, 0, 0, 0, 2383 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 2384 0, 0, 0, 345, 0, 0, 0, 0, 782, 0, 2385 0, 0, 341, 363, 0, 0, 0, 413, 413, 0, 2386 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 2387 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2388 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2389 0, 26, 27, 28, 29, 0, 0, 30, 889, 413, 2390 31, 32, 0, 0, 0, 0, 0, 381, 363, 0, 2391 0, 0, 0, 0, 830, 363, 0, 0, 0, 622, 2392 0, 622, 0, 0, 0, 33, 0, 0, 34, 0, 2393 35, 622, 36, 37, 0, 38, 39, 40, 0, 0, 2394 0, 0, 0, 0, 41, 42, 0, 345, 0, 0, 2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2397 43, 0, 44, 0, 0, 0, 0, 0, 0, 0, 2398 45, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2399 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2400 23, 24, 25, -294, 830, 26, 27, 28, 0, 0, 2401 0, 0, 413, 0, 31, 0, 0, 0, 413, 0, 2402 0, 0, 0, 782, 0, 991, 413, 0, 0, 0, 2403 0, 996, 0, 0, 0, 0, 0, 0, 1005, 622, 2404 622, 0, 34, 0, 0, 0, 0, 37, 0, 336, 2405 337, 40, 0, -294, 0, 0, 0, 0, 41, 42, 2406 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 2407 0, 0, 413, 0, 0, 0, 0, 0, 0, 0, 2408 0, 0, 1022, 1023, 643, 345, 338, 0, 0, 0, 2409 0, 413, 1159, 0, 634, 0, 0, 0, 0, 0, 2410 345, 363, 0, 0, 0, 0, 0, 413, 1171, 0, 2411 622, 622, 1176, 0, 0, 0, 0, 0, 0, 0, 2412 0, 0, 363, 363, 0, 0, 0, 0, 0, 0, 2413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2414 1053, 0, 0, 0, 381, 1, 2, 205, 4, 5, 2415 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2416 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2417 0, 0, 26, 27, 28, 29, 0, 0, 30, 0, 2418 0, 31, 0, 830, 413, 1239, 0, 0, 0, 0, 2419 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2421 0, 35, 0, 36, 0, 0, 38, 39, 0, 0, 2422 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2423 0, 0, 0, 0, 0, 0, 1140, 1141, 0, 0, 2424 0, 0, 363, 381, 0, 0, 0, 281, 282, 996, 2425 283, 0, 1150, 44, 769, 0, 0, 0, 0, 0, 2426 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 2427 0, 0, 0, 0, 1166, 0, 284, 0, 0, 0, 2428 0, 0, 285, 0, 0, 1181, 286, 0, 0, 287, 2429 288, 289, 290, 41, 42, 0, 291, 292, 0, 0, 2430 0, 0, 341, 0, 293, 281, 282, 381, 283, 1199, 2431 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 2432 0, 378, 0, 363, 996, 996, 0, 0, 296, 380, 2433 298, 299, 300, 301, 284, 0, 0, 0, 0, 0, 2434 285, 0, 0, 0, 286, 1231, 0, 287, 288, 289, 2435 290, 41, 42, 0, 291, 292, 0, 0, 0, 0, 2436 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 2437 0, 0, 363, 363, 0, 0, 0, 294, 0, 378, 2438 0, 0, 0, 0, 0, 0, 296, 734, 298, 299, 2439 300, 301, 0, 996, 0, 0, 0, 0, 0, 0, 2440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2441 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 2442 0, 0, 0, 0, 0, 0, 0, 1284, 1285, 0, 2443 0, 0, 0, 0, 0, 1, 2, 205, 4, 5, 2444 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2445 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2446 0, 0, 26, 27, 28, 29, 0, 0, 30, 281, 2447 282, 31, 1062, 1063, 0, 1064, 0, 0, 1065, 1066, 2448 1067, 1068, 1069, 1070, 1071, 1072, 0, 0, 0, 1073, 2449 0, 0, 0, 1074, 1075, 0, 33, 363, 284, 34, 2450 0, 35, 0, 36, 649, 0, 38, 39, 286, 996, 2451 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2452 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2454 0, 294, 0, 1076, 0, 0, 170, 0, 0, 0, 2455 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 2456 1077, 0, 0, 0, -129, 0, 0, 0, 0, 0, 2457 1392, 0, 769, 0, 0, 0, 0, 0, 0, 0, 2458 0, 0, 0, 0, 0, 0, 0, 413, 8, 9, 2459 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2460 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2461 28, 0, 413, 413, 0, 0, 0, 31, 0, 0, 2462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2463 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 2464 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2465 0, 0, 206, 39, 0, 0, 0, 0, 1452, 0, 2466 0, 0, 0, 0, 0, 1, 2, 205, 4, 5, 2467 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2468 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2469 0, 0, 26, 27, 28, 29, 0, 629, 30, 281, 2470 282, 31, 283, 8, 9, 10, 11, 12, 13, 14, 2471 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2472 25, 0, 0, 26, 27, 28, 0, 0, 284, 34, 2473 0, 35, 31, 36, 285, 0, 38, 39, 286, 0, 2474 1518, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2475 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2476 34, 0, 0, 0, 0, 109, 0, 38, 39, 0, 2477 0, 294, 0, 1076, 0, 0, 41, 42, 0, 0, 2478 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 2479 0, 0, 321, 0, -129, 1, 2, 205, 4, 5, 2480 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2481 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2482 0, 0, 26, 27, 28, 29, 0, 0, 30, 281, 2483 282, 31, 283, 8, 9, 10, 11, 12, 13, 14, 2484 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2485 25, 0, 0, 26, 27, 28, 0, 0, 284, 34, 2486 0, 35, 31, 36, 285, 0, 38, 39, 286, 0, 2487 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2488 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2489 34, 0, 0, 0, 0, 0, 0, 206, 39, 0, 2490 0, 294, 0, 44, 0, 0, 0, 0, 0, 0, 2491 296, 297, 298, 299, 300, 301, 2, 205, 4, 5, 2492 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2493 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2494 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2495 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2497 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2498 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2499 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2500 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2502 0, 294, 0, 343, 0, 0, 0, 0, 781, 0, 2503 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2504 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2505 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2506 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2507 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2509 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2510 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2511 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2512 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2514 0, 294, 0, 931, 0, 0, 0, 0, 781, 0, 2515 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2516 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2517 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2518 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2519 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2521 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2522 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2523 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2524 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2526 0, 294, 0, 931, 0, 0, 0, 0, 781, 0, 2527 296, 600, 298, 299, 300, 301, 2, 205, 4, 5, 2528 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2529 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2530 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2531 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2533 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2534 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2535 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2536 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2538 0, 294, 0, 343, 0, 0, 0, 0, 0, 0, 2539 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2540 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2541 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2542 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2543 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2545 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2546 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2547 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2548 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 0, 294, 0, 931, 0, 0, 0, 0, 0, 0, 2551 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2552 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2553 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2554 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2555 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2557 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2558 0, 35, 0, 36, 285, 0, 206, 39, 286, 0, 2559 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2560 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2562 0, 294, 0, 1020, 0, 0, 0, 0, 0, 0, 2563 296, 1021, 298, 299, 300, 301, 2, 205, 4, 5, 2564 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2565 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2566 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2567 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2569 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2570 0, 35, 0, 36, 285, 0, 206, 39, 286, 0, 2571 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2572 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2574 0, 294, 0, 378, 0, 0, 0, 0, 0, 0, 2575 296, 380, 298, 299, 300, 301, 204, 2, 205, 4, 2576 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2577 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2578 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2579 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582 34, 0, 35, 0, 36, 0, 0, 206, 39, 0, 2583 2, 205, 4, 5, 6, 7, 8, 9, 10, 11, 2584 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2585 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2586 0, 0, 0, 0, 207, 31, 0, 0, 0, 0, 2587 0, 0, 270, 0, 0, 0, 0, 0, 0, 0, 2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589 0, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2590 206, 39, 40, 0, 0, 0, 0, 0, 0, 41, 2591 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2593 0, 0, 0, 0, 0, 43, 0, 207, 0, 0, 2594 0, 0, 0, 0, 0, 208, 2, 205, 4, 5, 2595 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2596 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2597 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2598 0, 31, 0, 0, 0, 0, 8, 9, 10, 11, 2599 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2600 22, 23, 24, 25, 0, 0, 26, 27, 28, 34, 2601 0, 35, 0, 36, 0, 31, 38, 39, 0, 2, 2602 205, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2603 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2604 23, 24, 25, 34, 0, 26, 27, 28, 109, 0, 2605 38, 39, -402, 687, 31, 0, 0, 0, 0, 41, 2606 42, 634, 0, 0, 0, 0, 0, 0, 0, 0, 2607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2608 0, 0, 34, 0, 35, 0, 36, 44, 0, 38, 2609 39, 0, 0, 0, 0, 110, 0, 0, 0, 0, 2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2611 0, 1371, 0, 0, 0, 0, 0, 0, 0, 0, 2612 0, 0, 0, 0, 0, 0, 687, 0, 0, 0, 2613 0, 0, 0, 0, 634, 2, 205, 4, 5, 6, 2614 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2615 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2616 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2617 31, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2618 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2619 23, 24, 25, -294, 0, 26, 27, 28, 34, 0, 2620 35, 0, 36, 0, 31, 38, 39, 0, 0, 0, 2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2622 0, 0, 0, 0, 0, 0, 0, 1373, 0, 0, 2623 0, 0, 34, 0, 0, 0, 0, 37, 0, 336, 2624 337, 40, 687, -294, 0, 0, 0, 0, 41, 42, 2625 634, 2, 205, 4, 5, 6, 7, 8, 9, 10, 2626 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2627 21, 22, 23, 24, 25, 0, 338, 26, 27, 28, 2628 0, 0, 0, 0, 110, 0, 31, 0, 0, 0, 2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2631 0, 0, 0, 0, 34, 0, 35, 0, 36, 0, 2632 0, 206, 39, 0, 2, 205, 4, 5, 6, 7, 2633 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2634 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2635 26, 27, 28, 0, 0, 0, 0, 0, 269, 31, 2636 0, 0, 0, 0, 0, 0, 629, 0, 0, 0, 2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2639 0, 36, 0, 0, 38, 39, 0, 2, 205, 4, 2640 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2641 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2642 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2643 0, 687, 31, 0, 0, 0, 0, 0, 0, 634, 2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646 34, 0, 35, 0, 36, 0, 0, 38, 39, 0, 2647 2, 205, 4, 5, 6, 7, 8, 9, 10, 11, 2648 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2649 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2650 0, 0, 0, 0, 599, 31, 0, 0, 0, 0, 2651 0, 0, 634, 0, 0, 0, 0, 0, 0, 0, 2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2653 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2654 206, 39, 8, 9, 10, 11, 12, 13, 14, 15, 2655 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2656 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2657 282, 31, 283, 0, 0, 0, 0, 207, 0, 0, 2658 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 2659 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2660 0, 0, 0, 0, 285, 0, 38, 39, 286, 0, 2661 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2662 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2664 0, 294, 0, 525, 0, 0, 170, 0, 0, 0, 2665 296, 297, 298, 299, 300, 301, 8, 9, 10, 11, 2666 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2667 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2668 0, 0, 0, 281, 282, 31, 283, 8, 9, 10, 2669 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2670 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2671 0, 0, 284, 34, 0, 0, 31, 0, 285, 0, 2672 38, 39, 286, 0, 0, 287, 288, 289, 290, 41, 2673 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2674 293, 0, 0, 0, 34, 0, 0, 0, 0, 37, 2675 0, 336, 337, 40, 0, 294, 0, 599, -3, 0, 2676 41, 42, 0, 0, 296, 600, 298, 299, 300, 301, 2677 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2678 18, 19, 20, 21, 22, 23, 24, 25, 338, 0, 2679 26, 27, 28, 0, 0, 0, 110, 281, 282, 31, 2680 283, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2681 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2682 0, 26, 27, 28, 0, 0, 284, 34, 0, 0, 2683 31, 453, 649, 0, 38, 39, 286, 0, 0, 287, 2684 288, 289, 290, 41, 42, 0, 291, 292, 0, 0, 2685 0, 0, 0, 0, 293, 0, 0, 0, 34, 0, 2686 0, 0, 0, 0, 0, 38, 39, 0, 0, 294, 2687 -35, 766, 0, 0, 0, 0, 0, 0, 296, 297, 2688 298, 299, 300, 301, 8, 9, 10, 11, 12, 13, 2689 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2690 24, 25, 454, 0, 26, 27, 28, 0, 0, 0, 2691 110, 281, 282, 31, 283, 0, 0, 0, 0, 0, 2183 2692 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2184 2693 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2185 -295, 58, 26, 27, 28, 0, 0, 357, 58, 0, 2186 0, 31, 0, 0, 0, 357, 357, 357, 0, 0, 2187 0, 0, 0, 518, 0, 0, 357, 357, 0, 0, 2188 0, 0, 0, 0, 0, 0, 364, 0, 0, 34, 2189 81, 0, 0, 0, 0, 0, 38, 39, 0, 0, 2190 -295, 0, 0, 284, 285, 518, 286, 0, 0, 0, 2191 0, 58, 0, 357, 0, 0, 43, 0, 0, 0, 2192 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 2193 0, 642, 287, 339, 0, 0, 0, 0, 288, 0, 2194 46, 47, 289, 0, 0, 290, 291, 292, 293, 41, 2195 42, 88, 294, 295, 0, 0, 0, 0, 0, 0, 2196 43, 0, 0, 0, 950, 364, 951, 364, 0, 0, 2197 0, 0, 0, 954, 955, 296, 0, 380, 960, 0, 2198 0, 0, 0, 811, 46, 47, 298, 299, 300, 301, 2199 965, 0, 0, 0, 0, 969, 0, 364, 0, 284, 2200 285, 357, 286, 0, 0, 364, 364, 364, 0, 0, 2201 0, 0, 0, 0, 0, 0, 364, 364, 0, 0, 2202 0, 998, 0, 0, 0, 0, 0, 0, 287, 0, 2203 88, 1233, 0, 0, 288, 0, 0, 0, 289, 0, 2204 0, 290, 291, 292, 293, 41, 42, 0, 294, 295, 2205 81, 0, 0, 364, 0, 0, 43, 81, 0, 0, 2206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2207 518, 296, 0, 380, 0, 0, 0, 0, 780, 167, 2208 46, 47, 298, 299, 300, 301, 0, 0, 0, 0, 2209 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 2210 0, 518, 0, 0, 0, 0, 0, 0, 0, 0, 2211 81, 0, 0, 0, 518, 0, 0, 284, 285, 0, 2212 286, 0, 1044, 1045, 1046, 1047, 0, 1049, 0, 0, 2213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2214 0, 364, 0, 1093, 167, 0, 287, 0, 274, 0, 2215 0, 0, 288, 0, 1321, 518, 289, 1099, 0, 290, 2216 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2217 0, 213, 0, 0, 43, 0, 0, 167, 0, 0, 2218 0, 233, 0, 237, 0, 239, 0, 370, 0, 515, 2219 88, 376, 248, 0, 0, 0, 1115, 88, 46, 47, 2220 298, 299, 300, 301, 0, 0, 0, 0, 0, 0, 2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2222 0, 0, 0, 213, 0, 237, 239, 248, 518, 0, 2223 0, 0, 0, 0, 0, 0, 1143, 0, 0, 0, 2224 167, 0, 0, 1151, 0, 0, 0, 0, 1155, 0, 2225 88, 0, 220, 1159, 0, 1160, 0, 0, 0, 1162, 2226 0, 1163, 1164, 0, 0, 1167, 213, 0, 0, 0, 2227 167, 463, 0, 0, 1179, 0, 0, 0, 0, 0, 2228 0, 0, 0, 0, 0, 0, 518, 518, 0, 0, 2229 0, 0, 1194, 1195, 0, 376, 0, 0, 0, 0, 2230 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 1225, 2232 0, 0, 1227, 0, 0, 463, 0, 213, 0, 237, 2233 239, 248, 0, 0, 0, 0, 0, 167, 128, 128, 2234 128, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2694 284, 34, 26, 27, 28, 0, 285, 0, 38, 39, 2695 286, 31, 0, 287, 288, 289, 290, 41, 42, 0, 2696 291, 292, 0, 0, 0, 0, 0, 0, 293, 0, 2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2698 0, 0, 0, 294, 0, 295, 38, 39, 0, 0, 2699 0, 0, 296, 297, 298, 299, 300, 301, 8, 9, 2700 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2701 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2702 28, 643, 0, 338, 0, 281, 282, 31, 283, 0, 2703 0, 110, 0, 0, 0, 0, 8, 9, 10, 11, 2704 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2705 22, 23, 24, 25, 284, 34, 26, 27, 28, 0, 2706 285, 0, 38, 39, 286, 31, 0, 287, 288, 289, 2707 290, 41, 42, 0, 291, 292, 0, 0, 0, 0, 2708 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 2709 0, 0, 0, 34, 0, 0, 0, 294, 0, 156, 2710 38, 39, 0, 0, 0, 0, 296, 297, 298, 299, 2711 300, 301, 8, 9, 10, 11, 12, 13, 14, 15, 2235 2712 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2236 -295, 1243, 26, 27, 28, 213, 0, 1247, 1248, 0, 2237 213, 31, 0, 0, 0, 605, 0, 0, 0, 1259, 2238 629, 0, 0, 0, 1263, 506, 0, 1267, 0, 1268, 2239 0, 0, 1270, 0, 0, 0, 0, 0, 0, 34, 2240 0, 0, 0, 0, 37, 1278, 337, 338, 40, 0, 2241 -295, 0, 128, 0, 128, 41, 42, 0, 1285, 0, 2242 1287, 1288, 1289, 1290, 0, 0, 43, 0, 0, 0, 2243 0, 0, 0, 213, 0, 0, 1297, 0, 1298, 277, 2244 0, 642, 174, 339, 0, 0, 0, 0, 0, 0, 2245 46, 47, 0, 0, 0, 213, 167, 167, 0, 0, 2246 237, 239, 0, 370, 0, 0, 0, 0, 248, 0, 2247 0, 1326, 1327, 0, 0, 0, 0, 0, 0, 0, 2248 0, 0, 0, 0, 463, 0, 0, 463, 0, 0, 2249 0, 0, 0, 0, 0, 128, 0, 518, 0, 0, 2250 0, 0, 0, 128, 0, 128, 128, 0, 0, 0, 2251 128, 213, 128, 128, 518, 0, 0, 0, 0, 0, 2252 740, 0, 0, 1362, 1363, 0, 0, 0, 0, 213, 2253 0, 0, 167, 1373, 213, 0, 213, 0, 0, 0, 2254 0, 0, 0, 0, 463, 0, 463, 0, 0, 463, 2255 0, 167, 463, 213, 0, 0, 213, 213, 0, 0, 2256 0, 0, 0, 370, 0, 0, 0, 0, 0, 0, 2257 0, 0, 213, 1033, 0, 0, 8, 9, 10, 11, 2258 12, 0, 128, 0, 0, 1406, 213, 518, 518, 0, 2259 0, 0, 0, 213, 0, 0, 0, 1410, 0, 1411, 2260 1412, 1413, 0, 284, 285, 31, 286, 0, 0, 0, 2261 0, 1417, 0, 0, 0, 167, 158, 0, 0, 0, 2262 1428, 0, 0, 0, 0, 0, 0, 370, 0, 0, 2263 0, 835, 287, 34, 0, 0, 1441, 0, 288, 0, 2264 0, 0, 289, 0, 0, 290, 291, 292, 293, 41, 2265 42, 0, 294, 295, 0, 0, 0, 605, 0, 0, 2266 43, 0, 605, 0, 253, 0, 0, 0, 0, 0, 2267 0, 370, 370, 370, 258, 296, 0, 380, 0, 0, 2268 0, 0, 0, 0, 345, 47, 298, 299, 300, 301, 2269 370, 0, 1490, 1491, 0, 0, 0, 0, 0, 0, 2270 0, 0, 0, 0, 0, 1496, 213, 0, 0, 0, 2271 0, 0, 1496, 284, 285, 0, 286, 0, 0, 0, 2272 0, 0, 0, 0, 0, 740, 0, 0, 0, 0, 2273 158, 0, 0, 0, 213, 0, 0, 0, 0, 213, 2274 0, 0, 287, 0, 387, 1530, 463, 0, 288, 1536, 2275 0, 0, 289, 0, 0, 290, 291, 292, 293, 41, 2276 42, 0, 294, 295, 370, 0, 959, 419, 0, 0, 2277 43, 0, 0, 0, 0, 0, 0, 0, 1558, 0, 2278 1559, 434, 0, 0, 0, 296, 0, 380, 0, 0, 2279 439, 0, 0, 0, 46, 47, 298, 299, 300, 301, 2280 447, 740, 0, 0, 0, 0, 0, 0, 1574, 1575, 2281 0, 0, 0, 0, 0, 0, 1578, 1579, 0, 0, 2282 0, 0, 0, 0, 0, 473, 0, 213, 0, 0, 2283 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2284 0, 213, 0, 491, 0, 0, 0, 0, 0, 501, 2285 0, 505, 0, 0, 0, 370, 0, 0, 0, 629, 2286 0, 506, 0, 370, 0, 0, 0, 0, 534, 0, 2287 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2713 0, 0, 26, 27, 28, 643, 0, 338, 0, 281, 2714 282, 31, 283, 0, 0, 634, 0, 0, 0, 0, 2715 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2716 18, 19, 20, 21, 22, 23, 24, 25, 284, 34, 2717 26, 27, 28, 0, 285, 0, 38, 39, 286, 31, 2718 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2719 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2720 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2721 0, 294, 0, 599, 38, 39, 0, 0, 0, 0, 2722 296, 600, 298, 299, 300, 301, 8, 9, 10, 11, 2288 2723 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2289 22, 23, 24, 25, 128, 128, 26, 27, 28, 0, 2290 0, 0, 0, 0, 0, 31, 455, 0, 0, 0, 2291 593, 0, 0, 0, 0, 598, 0, 0, 0, 0, 2292 0, 0, 213, 128, 0, 0, 128, 128, 0, 128, 2293 0, 128, 128, 34, 213, 0, 128, 128, 0, 0, 2294 38, 39, 0, 0, 643, 0, 0, 0, 644, 645, 2295 0, 647, 0, 213, 0, 463, 0, 0, 659, 660, 2296 43, 661, 662, 0, 663, 0, 664, 0, 0, 0, 2297 0, 0, 0, 0, 463, 0, 0, 456, 0, 0, 2298 0, 710, 0, 593, 46, 47, 0, 0, 0, 0, 2299 0, 679, 0, 0, 0, 0, 0, 167, 0, 0, 2300 0, 0, 0, 1177, 0, 0, 8, 9, 10, 11, 2301 12, 0, 0, 370, 0, 128, 690, 0, 0, 0, 2302 128, 128, 0, 0, 0, 0, 128, 696, 0, 0, 2303 0, 0, 0, 284, 285, 31, 286, 0, 0, 0, 2304 213, 0, 0, 0, 0, 0, 0, 0, 0, 605, 2305 732, 0, 0, 0, 0, 0, 735, 0, 0, 0, 2306 0, 473, 287, 34, 0, 0, 213, 0, 288, 0, 2307 370, 370, 289, 0, 0, 290, 291, 292, 293, 41, 2308 42, 0, 294, 295, 0, 0, 0, 0, 0, 0, 2309 43, 0, 0, 0, 213, 0, 0, 772, 0, 0, 2310 0, 0, 0, 0, 0, 296, 0, 380, 0, 0, 2311 0, 787, 0, 0, 1178, 47, 298, 299, 300, 301, 2312 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 2313 463, 0, 0, 0, 0, 0, 0, 0, 213, 0, 2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 814, 2315 0, 0, 284, 285, 0, 286, 0, 0, 824, 342, 2316 365, 0, 0, 0, 0, 826, 0, 0, 0, 0, 2317 0, 834, 0, 0, 0, 0, 0, 0, 0, 0, 2318 848, 287, 0, 0, 0, 0, 0, 288, 0, 0, 2319 740, 289, 0, 415, 290, 291, 292, 293, 41, 42, 2320 415, 294, 295, 0, 0, 0, 0, 0, 0, 43, 2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322 213, 888, 0, 0, 296, 0, 380, 0, 0, 991, 2323 0, 0, 220, 46, 47, 298, 299, 300, 301, 0, 2324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2325 0, 0, 0, 0, 0, 0, 0, 834, 0, 0, 2326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2327 0, 740, 415, 0, 0, 1, 2, 208, 4, 5, 2328 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2329 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2330 -295, 0, 26, 27, 28, 29, 0, 213, 30, 0, 2331 0, 31, 253, 0, 0, 0, 0, 0, 0, 0, 2332 370, 370, 966, 967, 0, 0, 415, 0, 0, 220, 2333 0, 0, 0, 0, 415, 589, 984, 415, 592, 34, 2334 0, 35, 0, 36, 0, 0, 38, 39, 365, 0, 2335 -295, 0, 621, 999, 0, 1000, 0, 0, 0, 1004, 2336 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2337 0, 639, 0, 0, 342, 0, 0, 0, 0, 0, 2338 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 2339 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 2340 0, 415, 0, 0, 213, 415, 0, 0, 0, 0, 2341 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2342 0, 0, 0, 0, 1038, 0, 0, 0, 0, 0, 2343 0, 1039, 0, 0, 0, 0, 365, 0, 0, 0, 2344 0, 0, 0, 0, 1041, 370, 1042, 0, 0, 0, 2345 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 2346 1054, 0, 0, 0, 0, 0, 0, 1058, 0, 0, 2347 0, 0, 0, 0, 0, 0, 322, 0, 0, 1096, 2348 0, 0, 1097, 0, 0, 0, 347, 0, 0, 0, 2349 415, 0, 0, 365, 0, 0, 0, 0, 383, 383, 2350 598, 0, 0, 463, 0, 463, 0, 0, 8, 9, 2351 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2352 20, 21, 22, 23, 24, 25, -295, 0, 26, 27, 2353 28, 0, 415, 128, 0, 342, 365, 31, 0, 0, 2354 463, 0, 463, 0, 0, 0, 8, 9, 10, 11, 2355 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2356 22, 23, 24, 25, -295, 34, 0, 0, 0, 322, 2357 167, 0, 38, 39, 0, 31, -295, 0, 0, 0, 2358 415, 415, 0, 0, 0, 0, 0, 0, 0, 1161, 2359 0, 0, 43, 487, 0, 0, 0, 0, 0, 828, 2360 365, 0, 0, 34, 0, 0, 0, 0, 0, 339, 2361 621, 0, 621, 621, -295, 0, 46, 47, 0, 621, 2362 0, 0, 0, 0, 0, 0, 0, 0, 0, 867, 2363 365, 0, 0, 0, 0, 365, 0, 0, 0, 0, 2364 0, 0, 0, 0, 365, 365, 365, 534, 0, 0, 2365 0, 0, 0, 1226, 0, 0, 0, 0, 0, 0, 2366 213, 0, 0, 365, 0, 0, 0, 0, 415, 910, 2367 0, 0, 415, 913, 0, 0, 0, 0, 0, 915, 2368 0, 0, 0, 1240, 0, 0, 0, 0, 1242, 0, 2369 0, 0, 0, 0, 0, 0, 1246, 342, 365, 415, 2370 0, 415, 0, 0, 0, 415, 0, 0, 0, 383, 2371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2372 0, 0, 0, 0, 0, 0, 0, 1272, 0, 0, 2373 0, 0, 0, 0, 0, 0, 0, 365, 621, 1280, 2374 0, 0, 1281, 0, 1282, 0, 0, 0, 0, 0, 2375 0, 0, 0, 0, 0, 0, 0, 0, 1291, 1292, 2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2377 0, 0, 0, 342, 365, 0, 0, 0, 415, 415, 2378 1305, 207, 2, 208, 4, 5, 6, 7, 8, 9, 2379 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2380 20, 21, 22, 23, 24, 25, 0, 1328, 26, 27, 2381 28, 734, 0, 0, 0, 0, 0, 31, 0, 0, 2382 415, 0, 0, 0, 0, 0, 0, 0, 365, 0, 2383 0, 0, 0, 0, 0, 828, 365, 0, 0, 621, 2384 0, 621, 0, 0, 0, 34, 0, 35, 0, 36, 2385 768, 621, 209, 39, 0, 0, 0, 0, 0, 0, 2386 0, 0, 781, 0, 0, 0, 0, 768, 0, 0, 2387 768, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2388 0, 791, 792, 0, 0, 0, 0, 0, 0, 210, 2389 0, 0, 0, 0, 0, 0, 46, 47, 0, 0, 2390 0, 0, 0, 0, 813, 1398, 0, 1399, 0, 0, 2391 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 2392 1408, 347, 1409, 0, 828, 0, 781, 0, 0, 0, 2393 0, 0, 415, 0, 0, 0, 0, 0, 415, 0, 2394 1416, 0, 0, 0, 0, 0, 415, 0, 0, 0, 2395 0, 0, 0, 0, 0, 0, 1434, 1436, 0, 621, 2396 621, 0, 0, 0, 0, 0, 0, 0, 1442, 0, 2397 0, 1246, 0, 0, 0, 887, 0, 0, 0, 0, 2398 0, 0, 0, 0, 383, 0, 365, 0, 0, 0, 2399 0, 0, 415, 1465, 0, 0, 0, 0, 0, 0, 2400 0, 0, 1472, 0, 0, 1474, 0, 1476, 1478, 1480, 2401 0, 415, 1158, 284, 285, 0, 286, 0, 0, 0, 2402 0, 0, 365, 0, 347, 0, 0, 0, 415, 1170, 2403 0, 621, 621, 1175, 0, 0, 0, 0, 0, 0, 2404 0, 0, 287, 365, 365, 0, 0, 0, 288, 1511, 2405 0, 1513, 289, 0, 1246, 290, 291, 292, 293, 41, 2406 42, 0, 294, 295, 0, 0, 0, 0, 0, 1525, 2407 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2408 0, 0, 0, 0, 0, 296, 0, 380, 0, 0, 2409 0, 0, 0, 0, 733, 47, 298, 299, 300, 301, 2410 781, 0, 989, 0, 828, 415, 1238, 0, 994, 0, 2411 0, 0, 0, 0, 0, 1003, 0, 0, 621, 1, 2412 2, 208, 4, 5, 6, 7, 8, 9, 10, 11, 2413 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2414 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 2415 0, 0, 30, 284, 285, 31, 286, 0, 1021, 1022, 2416 0, 0, 347, 365, 0, 0, 0, 0, 0, 0, 2417 0, 0, 0, 0, 0, 0, 347, 0, 0, 0, 2418 0, 0, 287, 34, 0, 35, 0, 36, 288, 0, 2419 38, 39, 289, 0, 0, 290, 291, 292, 293, 41, 2420 42, 0, 294, 295, 0, 0, 0, 0, 0, 0, 2421 43, 0, 0, 0, 0, 0, 1052, 0, 0, 0, 2422 383, 0, 0, 0, 342, 296, 0, 1076, 0, 0, 2423 0, 0, 0, 0, 46, 47, 298, 299, 300, 301, 2424 0, 0, 0, 0, 365, 0, 0, 0, -130, 0, 2425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2426 0, 0, 0, 0, 2, 208, 4, 5, 6, 7, 2724 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2725 0, 256, 0, 281, 282, 31, 283, 0, 0, 110, 2726 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2727 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2728 24, 25, 284, 34, 26, 27, 28, 0, 285, 0, 2729 38, 39, 286, 31, 0, 287, 288, 289, 290, 41, 2730 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2731 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2732 0, 34, 0, 0, 0, 294, 0, 378, 38, 39, 2733 0, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2734 474, 2, 205, 4, 5, 6, 7, 8, 9, 10, 2735 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2736 21, 22, 23, 24, 25, 156, 0, 26, 27, 28, 2737 0, 0, 0, 110, 0, 0, 31, 0, 0, 0, 2427 2738 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2428 2739 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2429 26, 27, 28, 365, 365, 0, 322, 284, 285, 31, 2430 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431 0, 0, 1139, 1140, 0, 0, 0, 0, 0, 383, 2432 0, 0, 0, 0, 0, 994, 287, 34, 1149, 35, 2433 768, 36, 288, 0, 38, 39, 289, 0, 0, 290, 2434 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2435 0, 1165, 0, 0, 43, 0, 0, 0, 0, 0, 2436 0, 0, 1180, 0, 0, 0, 0, 0, 0, 296, 2437 0, 344, 0, 0, 0, 0, 780, 0, 345, 47, 2438 298, 299, 300, 301, 383, 0, 1198, 0, 0, 0, 2740 26, 27, 28, 0, 34, 0, 35, 0, 36, 31, 2741 0, 38, 39, 0, 0, 0, 0, 0, 8, 9, 2742 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2743 20, 21, 22, 23, 24, 25, 0, 34, 26, 27, 2744 28, 0, 37, 0, 38, 39, 40, 31, 0, 0, 2745 0, -3, 0, 41, 42, 0, 8, 9, 10, 11, 2746 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2747 22, 23, 24, 25, 0, 34, 26, 27, 28, 43, 2748 37, 156, 38, 39, 40, 31, 0, 0, 0, 45, 2749 0, 41, 42, 0, 8, 9, 10, 11, 12, 13, 2750 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2751 24, 25, 0, 34, 26, 27, 28, 43, 37, 44, 2752 206, 39, 40, 31, 0, 0, 0, 45, 0, 41, 2753 42, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2754 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2755 -294, 34, 26, 27, 28, 43, 37, 269, 336, 337, 2756 40, 31, 0, 0, 0, 208, 0, 41, 42, 0, 2439 2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2440 0, 994, 994, 0, 0, 0, 0, 0, 0, 0, 2441 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 2442 0, 0, 1230, 0, 0, 0, -520, 0, 0, 1, 2443 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2758 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2759 0, 0, 0, 643, 0, 338, 38, 39, 0, 0, 2760 -294, 0, 0, 634, 0, 8, 9, 10, 11, 12, 2761 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2762 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2763 0, 643, 0, 338, 31, 453, 0, 0, 0, 0, 2764 0, 634, 0, 8, 9, 10, 11, 12, 13, 14, 2765 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2766 25, -294, 34, 26, 27, 28, 0, 0, 0, 38, 2767 39, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2768 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2769 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2770 34, 0, 31, 453, 0, 0, 454, 38, 39, 0, 2771 711, -294, 0, 0, 110, 0, 0, 0, 0, 0, 2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2773 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2774 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, 2775 0, 0, 110, 0, 0, 8, 9, 10, 11, 12, 2776 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2777 23, 24, 25, 0, 454, 26, 27, 28, 1109, 0, 2778 0, 0, 110, 0, 31, 453, 8, 9, 10, 11, 2444 2779 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2445 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 2446 0, 0, 30, 0, 0, 31, 32, 0, 0, 0, 2447 994, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 887, 2449 33, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2450 38, 39, 40, 0, 1283, 1284, 0, 0, 415, 41, 2451 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2452 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2453 0, 0, 0, 415, 415, 44, 0, 45, 0, 0, 2454 0, 0, 0, 0, 46, 47, 0, 0, 0, 0, 2455 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, 2456 1, 2, 208, 4, 5, 6, 7, 8, 9, 10, 2457 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2458 21, 22, 23, 24, 25, 0, 994, 26, 27, 28, 2459 29, 0, 0, 30, 284, 285, 31, 1061, 1062, 0, 2460 1063, 0, 0, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 2461 1071, 0, 0, 0, 1072, 0, 0, 0, 1073, 1074, 2462 0, 33, 0, 287, 34, 0, 35, 0, 36, 1075, 2463 0, 38, 39, 289, 0, 0, 290, 291, 292, 293, 2464 41, 42, 0, 294, 295, 0, 0, 1391, 0, 0, 2465 768, 43, 0, 0, 0, 0, 0, 0, 0, 0, 2466 0, 0, 0, 0, 0, 0, 296, 0, 1076, 0, 2467 0, 173, 0, 0, 0, 46, 47, 298, 299, 300, 2468 301, 0, 0, 0, 0, 1077, 0, 0, 0, -130, 2469 1, 2, 208, 4, 5, 6, 7, 8, 9, 10, 2780 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2781 0, 0, 34, 0, 0, 31, 0, 0, 0, 38, 2782 39, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2783 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2784 24, 25, 0, 34, 26, 27, 28, 0, 0, 0, 2785 206, 39, 0, 31, 0, 0, 454, 0, 0, 0, 2786 1236, 0, 0, 0, 110, 0, 0, 0, 0, 0, 2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2788 0, 34, 0, 0, 0, 0, 0, 269, 38, 39, 2789 0, 0, 0, 0, 0, 270, 0, 8, 9, 10, 2470 2790 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2471 2791 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2472 29, 0, 0, 30, 284, 285, 31, 286, 0, 0, 2473 0, 0, 0, 0, 0, 1451, 0, 0, 0, 0, 2792 0, 0, 0, 0, 0, 256, 31, 0, 0, 0, 2793 0, 0, 0, 634, 0, 8, 9, 10, 11, 12, 2794 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2795 23, 24, 25, 0, 34, 26, 27, 28, 0, 0, 2796 0, 38, 39, 0, 31, 8, 9, 10, 11, 12, 2797 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2798 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2799 0, 0, 34, 0, 31, 0, 0, 0, 338, 38, 2800 39, 0, 0, 0, 0, 0, 634, 0, 0, 0, 2474 2801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2475 0, 0, 0, 287, 34, 0, 35, 0, 36, 288, 2476 0, 38, 39, 289, 0, 0, 290, 291, 292, 293, 2477 41, 42, 0, 294, 295, 0, 0, 0, 0, 0, 2478 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 2479 0, 0, 0, 0, 0, 0, 296, 0, 45, 0, 2480 0, 0, 0, 0, 0, 46, 47, 298, 299, 300, 2481 301, 0, 0, 0, 0, 0, 0, 1517, 2, 208, 2802 0, 0, 34, 0, 0, 0, 0, 0, 0, 206, 2803 39, 0, 0, 0, 0, 0, 454, 0, 0, 0, 2804 0, 0, 0, 0, 110, 0, 0, 8, 9, 10, 2805 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2806 21, 22, 23, 24, 25, 0, 269, 26, 27, 28, 2807 0, 0, 0, 0, 629, 0, 31, 8, 9, 10, 2808 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2809 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2810 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 2811 0, 38, 39, 0, 0, 8, 9, 10, 11, 12, 2812 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2813 23, 24, 25, 0, 34, 26, 27, 28, 0, 0, 2814 0, 38, 39, 0, 31, 0, 0, 0, 599, 0, 2815 0, 0, 0, 0, 0, 0, 634, 0, 0, 0, 2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2817 0, 0, 34, 0, 0, 0, 0, 0, 338, 38, 2818 39, 0, 0, 0, 0, 0, 110, 2, 205, 4, 2819 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2820 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2821 25, 0, 0, 26, 27, 28, 44, 0, 0, 0, 2822 0, 0, 31, 0, 110, 0, 0, 0, 0, 0, 2823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2825 34, 0, 35, 0, 36, 0, 0, 38, 39, 281, 2826 282, 0, 283, 1063, 0, 1064, 0, 0, 1065, 1066, 2827 1067, 1068, 1069, 1070, 1071, 1072, 0, 0, 1551, 1073, 2828 0, 0, 0, 1074, 1075, 0, 33, 0, 284, 0, 2829 0, 0, 0, -415, 649, 0, 0, 0, 286, 0, 2830 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2831 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2833 0, 294, 0, 378, 0, 0, 170, 0, 0, 0, 2834 296, 380, 298, 299, 300, 301, 0, 0, 0, 0, 2835 1077, 0, 281, 282, -129, 283, 1063, 0, 1064, 0, 2836 0, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 0, 2837 0, 0, 1073, 0, 0, 0, 1074, 1075, 0, 33, 2838 0, 284, 0, 0, 0, 0, 0, 649, 0, 0, 2839 0, 286, 0, 0, 287, 288, 289, 290, 41, 42, 2840 0, 291, 292, 0, 0, 0, 0, 0, 0, 293, 2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2842 0, 0, 0, 0, 294, 0, 378, 0, 0, 170, 2843 0, 0, 0, 296, 380, 298, 299, 300, 301, 0, 2844 0, 0, 0, 1077, 0, 0, 0, -129, 2, 205, 2482 2845 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2483 2846 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2484 2847 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2485 0, 284, 285, 31, 286, 0, 0, 0, 0, 0, 2486 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 2487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2488 287, 34, 0, 35, 0, 36, 288, 0, 38, 39, 2489 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2490 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2492 0, 0, 0, 296, 0, 929, 0, 0, 0, 0, 2493 780, 0, 345, 47, 298, 299, 300, 301, 2, 208, 2494 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2495 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2496 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2497 0, 284, 285, 31, 286, 8, 9, 10, 11, 12, 2498 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2499 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2500 287, 34, 0, 35, 31, 36, 288, 0, 38, 39, 2501 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2502 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2503 0, 0, 34, 0, 0, 0, 0, 112, 0, 38, 2504 39, 0, 0, 296, 0, 929, 0, 0, 41, 42, 2505 780, 0, 46, 47, 298, 299, 300, 301, 2, 208, 2506 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2507 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2508 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2509 0, 284, 285, 31, 286, 0, 0, 0, 8, 9, 2510 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2511 20, 21, 22, 23, 24, 25, -296, 0, 0, 0, 2512 287, 34, 0, 35, 0, 36, 288, 31, 38, 39, 2513 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2514 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2515 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2516 0, 0, 0, 296, 0, 344, -296, 0, 0, 0, 2517 0, 0, 345, 47, 298, 299, 300, 301, 2, 208, 2518 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2519 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2520 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2521 0, 284, 285, 31, 286, 8, 9, 10, 11, 12, 2522 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2523 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2524 287, 34, 0, 35, 31, 36, 288, 0, 38, 39, 2525 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2526 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2527 0, 0, 34, 0, 0, 0, 0, 0, 0, 38, 2528 39, 0, 0, 296, 0, 929, 0, 0, 0, 0, 2529 0, 0, 345, 47, 298, 299, 300, 301, 2, 208, 2530 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2531 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2532 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2533 0, 284, 285, 31, 286, 8, 9, 10, 11, 12, 2534 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2535 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2536 287, 34, 0, 35, 31, 36, 288, 0, 209, 39, 2537 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2538 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2539 0, 0, 34, 0, 0, 0, 0, 0, 0, 209, 2540 39, 0, 0, 296, 0, 1018, 0, 0, 0, 0, 2541 0, 0, 1019, 47, 298, 299, 300, 301, 2, 208, 2542 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2543 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2544 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2545 0, 284, 285, 31, 286, 8, 9, 10, 11, 12, 2546 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2547 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 2548 287, 34, 0, 35, 31, 36, 288, 0, 209, 39, 2549 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2550 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2551 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 2552 0, 0, 0, 296, 0, 380, 0, 0, 0, 0, 2553 0, 0, 46, 47, 298, 299, 300, 301, 1, 2, 2554 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2555 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2556 23, 24, 25, 0, 0, 26, 27, 28, 29, 0, 2557 0, 30, 0, 0, 31, 32, 0, 0, 0, 0, 2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2559 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2560 0, 0, 34, 0, 35, 0, 36, 37, 0, 38, 2561 39, 40, 0, 0, 0, 0, 0, 0, 41, 42, 2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 2563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2564 0, 0, 0, 0, 44, 0, 45, 0, 0, 0, 2565 -524, 0, 0, 46, 47, 1, 2, 3, 4, 5, 2566 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2567 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2568 0, 0, 26, 27, 28, 29, 0, 0, 30, 0, 2569 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 2570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2571 0, 0, 0, 0, 0, 0, 33, 0, 0, 34, 2572 0, 35, 0, 36, 37, 0, 38, 39, 40, 0, 2573 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2574 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2576 0, 44, 0, 45, 0, 0, 0, 0, 0, 0, 2577 46, 47, 207, 2, 208, 4, 5, 6, 7, 8, 2578 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2579 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2580 27, 28, 0, 0, 0, 0, 0, 0, 31, 0, 2581 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2582 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2583 26, 27, 28, 494, 495, 496, 34, 0, 35, 31, 2584 36, 37, 0, 209, 39, 40, 0, 0, 0, 0, 2585 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 2586 0, 0, 0, 43, 0, 0, 0, 34, 0, 0, 2587 0, 0, 0, 0, 38, 39, 0, 0, 44, 0, 2588 210, 0, 0, 0, 0, 0, 0, 46, 47, 1, 2589 2, 208, 4, 5, 6, 7, 8, 9, 10, 11, 2848 0, 0, 0, 31, 0, 281, 282, 0, 283, 1063, 2849 0, 1064, 1421, 1422, 1065, 1066, 1067, 1068, 1069, 1070, 2850 1071, 1072, 0, 0, 1551, 1073, 0, 0, 0, 1074, 2851 1075, 34, 33, 35, 284, 36, 0, 0, 38, 39, 2852 649, 0, 0, 0, 286, 0, 0, 287, 288, 289, 2853 290, 41, 42, 0, 291, 292, 0, 0, 0, 0, 2854 1330, 0, 293, 0, 0, 0, 0, 0, 0, 0, 2855 0, 0, 0, 0, 0, 0, 0, 294, 0, 378, 2856 0, 0, 170, 0, 0, 0, 296, 380, 298, 299, 2857 300, 301, 0, 0, 281, 282, 1077, 283, 1063, 0, 2858 1064, 1421, 1422, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 2859 1072, 0, 0, 0, 1073, 0, 0, 0, 1074, 1075, 2860 0, 33, 0, 284, 0, 0, 0, 0, 0, 649, 2861 0, 0, 0, 286, 0, 0, 287, 288, 289, 290, 2862 41, 42, 0, 291, 292, 0, 0, 0, 0, 0, 2863 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2864 0, 0, 0, 0, 0, 0, 294, 0, 378, 0, 2865 0, 170, 0, 0, 0, 296, 380, 298, 299, 300, 2866 301, 0, 0, 281, 282, 1077, 283, 1063, 0, 1064, 2867 0, 0, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 2868 0, 0, 0, 1073, 0, 0, 0, 1074, 1075, 0, 2869 33, 0, 284, 0, 0, 0, 0, 0, 649, 0, 2870 0, 0, 286, 0, 0, 287, 288, 289, 290, 41, 2871 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2872 293, 281, 282, 0, 283, 0, 0, 0, 0, 0, 2873 0, 0, 0, 0, 0, 294, 0, 378, 0, 0, 2874 170, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2875 284, 0, 0, 0, 1077, 0, 649, 0, 0, 0, 2876 286, 0, 0, 287, 288, 289, 290, 41, 42, 0, 2877 291, 292, 0, 0, 0, 0, 0, 0, 293, 281, 2878 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, 2879 0, 0, 0, 294, 0, 785, 0, 0, 281, 282, 2880 0, 283, 296, 380, 298, 299, 300, 301, 284, 0, 2881 0, 0, 0, 0, 285, 0, 0, 0, 286, 0, 2882 0, 287, 288, 289, 290, 41, 42, 284, 291, 292, 2883 0, 0, 0, 285, 0, 0, 293, 286, 0, 0, 2884 287, 288, 289, 290, 41, 42, 0, 291, 292, 0, 2885 0, 294, 0, 378, 0, 293, 281, 282, 0, 283, 2886 296, 827, 298, 299, 300, 301, 0, 0, 0, 0, 2887 513, 0, 0, 0, 0, 281, 282, 0, 283, 296, 2888 380, 298, 299, 300, 301, 284, 0, 0, 0, 0, 2889 0, 285, 0, 0, 0, 286, 0, 0, 287, 288, 2890 289, 290, 41, 42, 284, 291, 292, 0, 0, 0, 2891 285, 0, 0, 293, 286, 0, 0, 287, 288, 289, 2892 290, 41, 42, 0, 291, 292, 0, 0, 294, 0, 2893 0, 0, 293, 281, 282, 0, 283, 296, 380, 298, 2894 299, 300, 301, 0, 0, 0, 0, 518, 0, 0, 2895 0, 0, 0, 0, 0, 0, 296, 380, 298, 299, 2896 300, 301, 284, 0, 0, 0, 0, 0, 285, 0, 2897 0, 0, 286, 0, 0, 287, 288, 289, 290, 41, 2898 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2899 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2900 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 2901 0, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2902 2, 205, 4, 5, 6, 7, 8, 9, 10, 11, 2590 2903 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2591 22, 23, 24, 25, 0, 0, 26, 27, 28, 29,2592 0, 0, 30, 0, 0, 31, 0, 0, 0, 0,2904 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 2905 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 2593 2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2594 2907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2595 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2596 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2598 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2599 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 2600 0, 0, 0, 0, 46, 47, 2, 208, 4, 5, 2601 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2602 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2603 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2604 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2606 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2607 0, 35, 0, 36, 37, 0, 209, 39, 40, 0, 2608 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2609 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2611 0, 44, 0, 210, 0, 0, 0, 0, 0, 0, 2612 46, 47, 2, 208, 4, 5, 6, 7, 8, 9, 2908 0, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2909 173, 174, 40, 0, 0, 0, 0, 0, 0, 41, 2910 42, 204, 2, 205, 4, 5, 6, 7, 8, 9, 2613 2911 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2614 2912 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, … … 2617 2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2618 2916 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2619 0, 0, 38, 39, 0, 0, 0, 0, 0, 0, 2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2621 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2622 0, 0, 0, 0, 0, 0, 0, 0, -403, 686, 2623 0, 0, 0, 0, 0, 0, 46, 47, 2, 208, 2624 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2625 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2626 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2627 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2630 0, 34, 0, 35, 0, 36, 0, 0, 38, 39, 2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2632 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2633 1370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2634 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 2635 0, 0, 46, 47, 2, 208, 4, 5, 6, 7, 2636 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2637 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2638 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2642 0, 36, 0, 0, 38, 39, 0, 0, 0, 0, 2643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644 0, 0, 0, 0, 43, 0, 1372, 0, 0, 0, 2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2646 0, 686, 0, 0, 0, 0, 0, 0, 46, 47, 2647 2, 208, 4, 5, 6, 7, 8, 9, 10, 11, 2648 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2649 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2650 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2653 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2654 209, 39, 0, 0, 0, 0, 0, 0, 0, 0, 2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2656 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2657 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 2658 0, 0, 0, 0, 46, 47, 2, 208, 4, 5, 2659 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2660 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2661 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2662 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2665 0, 35, 0, 36, 0, 0, 38, 39, 0, 0, 2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2667 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2669 0, 0, 0, 686, 0, 0, 0, 0, 0, 0, 2670 46, 47, 2, 208, 4, 5, 6, 7, 8, 9, 2671 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2672 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2673 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2676 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2677 0, 0, 38, 39, 0, 0, 0, 0, 0, 0, 2678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2679 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2680 0, 0, 0, 0, 0, 0, 0, 0, 0, 600, 2681 0, 0, 0, 0, 0, 0, 46, 47, 2, 208, 2682 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2683 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2684 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2685 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2688 0, 34, 0, 35, 0, 36, 0, 0, 209, 39, 2689 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2690 18, 19, 20, 21, 22, 23, 24, 25, 43, 0, 2691 26, 27, 28, 0, 0, 0, 0, 284, 285, 31, 2692 286, 0, 0, 0, 0, 210, 0, 0, 0, 0, 2693 0, 0, 46, 47, 0, 0, 0, 0, 0, 0, 2694 0, 0, 0, 0, 0, 0, 287, 34, 0, 0, 2695 0, 0, 288, 0, 38, 39, 289, 0, 0, 290, 2696 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2697 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 2698 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 2699 0, 526, 0, 0, 173, 0, 0, 0, 46, 47, 2700 298, 299, 300, 301, 8, 9, 10, 11, 12, 13, 2701 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2702 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2703 0, 284, 285, 31, 286, 0, 0, 0, 0, 0, 2704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2706 287, 34, 0, 0, 0, 0, 648, 0, 38, 39, 2707 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2708 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2710 0, 0, 0, 296, -35, 765, 0, 0, 0, 0, 2711 0, 0, 46, 47, 298, 299, 300, 301, 8, 9, 2712 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2713 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2714 28, 0, 0, 0, 0, 284, 285, 31, 286, 0, 2715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2717 0, 0, 0, 0, 287, 34, 0, 0, 0, 0, 2718 288, 0, 38, 39, 289, 0, 0, 290, 291, 292, 2719 293, 41, 42, 0, 294, 295, 0, 0, 0, 0, 2720 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2721 0, 0, 0, 0, 0, 0, 0, 296, 0, 297, 2722 0, 0, 0, 0, 0, 0, 46, 47, 298, 299, 2723 300, 301, 8, 9, 10, 11, 12, 13, 14, 15, 2724 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2725 0, 0, 26, 27, 28, 0, 0, 0, 0, 284, 2726 285, 31, 286, 0, 0, 0, 0, 0, 0, 0, 2727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2728 0, 0, 0, 0, 0, 0, 0, 0, 287, 34, 2729 0, 0, 0, 0, 288, 0, 38, 39, 289, 0, 2730 0, 290, 291, 292, 293, 41, 42, 0, 294, 295, 2731 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2733 0, 296, 0, 159, 0, 0, 0, 0, 0, 0, 2734 46, 47, 298, 299, 300, 301, 8, 9, 10, 11, 2735 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2736 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2737 0, 0, 0, 284, 285, 31, 286, 0, 0, 0, 2738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2740 0, 0, 287, 34, 0, 0, 0, 0, 288, 0, 2741 38, 39, 289, 0, 0, 290, 291, 292, 293, 41, 2742 42, 0, 294, 295, 0, 0, 0, 0, 0, 0, 2743 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2744 0, 0, 0, 0, 0, 296, 0, 600, 0, 0, 2745 0, 0, 0, 0, 46, 47, 298, 299, 300, 301, 2746 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2747 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2748 26, 27, 28, 0, 0, 0, 0, 284, 285, 31, 2749 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2751 0, 0, 0, 0, 0, 0, 287, 34, 0, 0, 2752 0, 0, 288, 0, 38, 39, 289, 0, 0, 290, 2753 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2754 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 2756 0, 380, 0, 0, 0, 0, 0, 0, 46, 47, 2757 298, 299, 300, 301, 476, 2, 208, 4, 5, 6, 2917 0, 0, 206, 39, 474, 2, 205, 4, 5, 6, 2758 2918 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2759 2919 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2760 2920 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2761 31, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2762 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2763 24, 25, -295, 0, 26, 27, 28, 0, 34, 0, 2764 35, 0, 36, 31, 0, 38, 39, 0, 0, 0, 2765 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2766 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2767 0, 34, 26, 27, 28, 0, 37, 0, 337, 338, 2768 40, 31, -295, 0, 0, -3, 0, 41, 42, 0, 2769 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2770 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2771 0, 0, 0, 0, 37, 339, 38, 39, 40, 0, 2772 0, 0, 46, 47, 0, 41, 42, 0, 0, 0, 2773 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2921 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2774 2922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2775 0, 44, 0, 159, 0, 0, 0, 0, 0, 0, 2776 46, 47, 8, 9, 10, 11, 12, 13, 14, 15, 2777 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2778 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2779 0, 31, 8, 9, 10, 11, 12, 13, 14, 15, 2780 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2781 0, 0, 26, 27, 28, 0, 0, 0, 0, 34, 2782 0, 31, 0, 0, 37, 0, 38, 39, 40, 0, 2783 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2784 0, 0, 0, 0, 0, 0, 43, 0, 0, 34, 2785 0, 0, 0, 0, 37, 0, 209, 39, 40, 0, 2786 0, 44, 0, 45, 0, 41, 42, 0, 0, 0, 2787 46, 47, 0, 0, 0, 0, 43, 0, 0, 0, 2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2789 0, 44, 0, 272, 0, 0, 0, 0, 0, 0, 2790 46, 47, 8, 9, 10, 11, 12, 13, 14, 15, 2791 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2792 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2793 0, 31, 8, 9, 10, 11, 12, 13, 14, 15, 2794 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2795 0, 0, 26, 27, 28, 0, 0, 0, 0, 34, 2796 0, 31, 0, 0, 37, 0, 337, 338, 40, 0, 2797 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2798 0, 0, 0, 0, 0, 0, 43, 0, 0, 34, 2799 0, 0, 0, 0, 37, 0, 337, 338, 40, 0, 2800 0, 642, 0, 339, 0, 41, 42, 0, 0, 0, 2801 46, 47, 0, 0, 0, 0, 43, 0, 0, 0, 2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2803 0, 0, 0, 339, 0, 0, 0, 0, 0, 0, 2804 46, 47, 8, 9, 10, 11, 12, 13, 14, 15, 2805 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2806 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2807 0, 31, 8, 9, 10, 11, 12, 13, 14, 15, 2808 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2809 0, 0, 26, 27, 28, 0, 0, 0, 0, 34, 2810 0, 31, 455, 0, 112, 0, 38, 39, 0, 0, 2811 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2812 0, 0, 0, 0, 0, 0, 43, 0, 0, 34, 2813 0, 0, 0, 0, 0, 0, 38, 39, 0, 0, 2814 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 2815 46, 47, 0, 0, 0, 0, 43, 0, 0, 0, 2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2817 0, 0, 0, 456, 0, 0, 0, 1108, 0, 0, 2818 46, 47, 8, 9, 10, 11, 12, 13, 14, 15, 2819 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2820 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2821 0, 31, 455, 8, 9, 10, 11, 12, 13, 14, 2822 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2823 25, 0, 0, 26, 27, 28, 0, 0, 0, 34, 2824 0, 0, 31, 455, 0, 0, 38, 39, 0, 0, 2825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2826 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2827 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2828 0, 0, 0, 456, 0, 0, 0, 1235, 0, 0, 2829 46, 47, 0, 0, 0, 0, 0, 43, 0, 0, 2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2831 0, 0, 0, 0, 456, 0, 0, 0, 0, 0, 2832 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2923 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2924 35, 0, 36, 0, 0, 38, 39, 2, 205, 4, 2925 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2833 2926 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2834 2927 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2835 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2928 0, 0, 31, 0, 8, 9, 10, 11, 12, 13, 2929 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2930 24, 25, 0, 0, 26, 27, 28, 492, 493, 494, 2931 34, 0, 35, 31, 36, 0, 0, 206, 39, 0, 2932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2934 0, 34, 0, 0, 0, 0, 0, 0, 38, 39 2935 }; 2936 2937 #define yypact_value_is_default(yystate) \ 2938 ((yystate) == (-1332)) 2939 2940 #define yytable_value_is_error(yytable_value) \ 2941 YYID (0) 2942 2943 static const yytype_int16 yycheck[] = 2944 { 2945 0, 1, 0, 203, 184, 184, 520, 698, 238, 43, 2946 115, 184, 1, 698, 43, 43, 543, 185, 629, 0, 2947 104, 218, 184, 280, 185, 456, 455, 698, 348, 29, 2948 30, 184, 32, 184, 32, 1062, 184, 902, 167, 168, 2949 609, 348, 1, 43, 656, 45, 278, 45, 1043, 611, 2950 1006, 32, 1042, 1043, 32, 55, 497, 0, 759, 611, 2951 28, 61, 612, 61, 64, 609, 64, 67, 618, 67, 2952 154, 609, 499, 579, 1340, 718, 503, 999, 67, 609, 2953 609, 81, 82, 780, 264, 264, 777, 51, 186, 32, 2954 1421, 264, 777, 609, 82, 200, 1425, 265, 344, 1055, 2955 529, 39, 264, 902, 265, 105, 777, 0, 108, 39, 2956 78, 264, 417, 264, 609, 115, 264, 0, 43, 72, 2957 43, 45, 363, 643, 644, 645, 367, 489, 44, 45, 2958 83, 84, 437, 64, 0, 43, 82, 39, 227, 32, 2959 445, 39, 662, 44, 45, 109, 146, 95, 146, 32, 2960 184, 0, 1, 39, 154, 184, 184, 246, 111, 159, 2961 63, 159, 260, 261, 1495, 111, 32, 44, 45, 1477, 2962 109, 64, 613, 111, 85, 495, 617, 1443, 109, 109, 2963 30, 111, 130, 32, 184, 185, 110, 185, 4, 5, 2964 6, 7, 8, 9, 1523, 109, 39, 638, 114, 1528, 2965 200, 642, 113, 255, 1512, 39, 1514, 109, 208, 111, 2966 208, 294, 409, 114, 744, 64, 736, 217, 67, 1548, 2967 220, 145, 220, 109, 902, 111, 1555, 227, 744, 132, 2968 264, 81, 82, 96, 82, 264, 264, 405, 115, 11, 2969 644, 645, 242, 489, 405, 82, 246, 109, 1243, 744, 2970 250, 251, 250, 69, 511, 71, 112, 341, 662, 184, 2971 123, 184, 110, 1062, 264, 265, 109, 265, 111, 250, 2972 839, 271, 250, 0, 1, 109, 184, 111, 278, 1306, 2973 117, 643, 644, 645, 208, 928, 370, 455, 0, 851, 2974 395, 841, 251, 293, 455, 839, 114, 107, 1293, 851, 2975 662, 839, 1292, 1293, 611, 32, 3, 250, 828, 839, 2976 839, 82, 1009, 819, 238, 110, 132, 116, 423, 487, 2977 32, 131, 117, 839, 429, 116, 487, 220, 328, 116, 2978 328, 43, 736, 45, 293, 697, 82, 1259, 109, 951, 2979 67, 132, 425, 426, 839, 132, 270, 347, 348, 61, 2980 425, 426, 64, 116, 600, 67, 597, 250, 699, 55, 2981 90, 91, 1227, 109, 364, 417, 72, 250, 368, 132, 2982 1071, 220, 255, 297, 736, 1074, 1075, 83, 84, 379, 2983 721, 109, 110, 629, 250, 437, 691, 1065, 634, 255, 2984 959, 96, 242, 445, 109, 395, 126, 127, 960, 640, 2985 110, 250, 72, 109, 3, 405, 116, 405, 82, 105, 2986 1021, 773, 108, 83, 84, 959, 131, 116, 123, 676, 2987 344, 959, 1417, 423, 828, 109, 501, 1417, 1227, 429, 2988 513, 431, 873, 68, 146, 518, 110, 72, 521, 1466, 2989 75, 1528, 77, 117, 1143, 520, 1473, 159, 532, 84, 2990 1528, 697, 72, 1409, 1410, 455, 349, 121, 122, 72, 2991 460, 1548, 132, 83, 84, 109, 828, 111, 1555, 116, 2992 83, 84, 184, 185, 474, 119, 110, 1555, 116, 479, 2993 1030, 1031, 699, 117, 112, 132, 0, 487, 116, 487, 2994 1004, 491, 575, 491, 132, 495, 208, 131, 498, 1526, 2995 500, 425, 426, 0, 721, 762, 119, 1306, 220, 938, 2996 491, 586, 132, 88, 89, 474, 947, 946, 698, 698, 2997 520, 217, 131, 250, 965, 698, 758, 773, 657, 379, 2998 1142, 851, 700, 80, 417, 109, 698, 537, 250, 700, 2999 540, 968, 542, 543, 851, 698, 72, 698, 491, 1227, 3000 698, 417, 264, 116, 437, 1117, 109, 83, 84, 664, 3001 110, 520, 445, 992, 111, 109, 113, 117, 666, 132, 3002 117, 437, 115, 116, 110, 271, 211, 501, 537, 445, 3003 116, 540, 278, 542, 543, 111, 109, 480, 131, 830, 3004 590, 116, 3, 834, 109, 812, 520, 597, 491, 10, 3005 11, 12, 13, 14, 109, 1306, 489, 132, 491, 609, 3006 460, 611, 696, 116, 53, 72, 328, 598, 116, 4, 3007 5, 6, 7, 8, 9, 491, 83, 84, 39, 132, 3008 630, 590, 110, 116, 132, 119, 348, 978, 116, 691, 3009 124, 125, 491, 112, 964, 1323, 646, 116, 498, 132, 3010 500, 347, 652, 116, 111, 110, 67, 96, 0, 1, 3011 1498, 661, 586, 663, 664, 665, 1504, 1466, 364, 132, 3012 80, 1102, 368, 890, 1473, 129, 600, 131, 116, 116, 3013 1042, 733, 1383, 924, 69, 72, 71, 1525, 772, 110, 3014 32, 888, 1530, 405, 132, 132, 83, 84, 698, 1377, 3015 700, 111, 1380, 113, 663, 629, 665, 117, 112, 109, 3016 634, 111, 909, 713, 116, 110, 351, 112, 353, 719, 3017 110, 116, 64, 723, 111, 67, 116, 1526, 110, 110, 3018 132, 731, 45, 110, 116, 116, 131, 132, 631, 109, 3019 970, 111, 110, 455, 744, 745, 112, 1425, 61, 119, 3020 116, 64, 1430, 192, 67, 112, 72, 110, 758, 116, 3021 76, 978, 72, 116, 491, 894, 76, 83, 84, 1470, 3022 938, 1472, 731, 83, 84, 1021, 215, 938, 946, 491, 3023 112, 110, 1460, 495, 116, 946, 225, 10, 11, 12, 3024 13, 14, 1009, 109, 1135, 1322, 92, 93, 110, 109, 3025 1162, 111, 652, 119, 116, 110, 441, 72, 691, 119, 3026 109, 116, 111, 155, 697, 109, 39, 111, 83, 84, 3027 10, 11, 12, 13, 14, 691, 1527, 109, 109, 111, 3028 513, 724, 515, 146, 1034, 518, 1133, 119, 521, 839, 3029 1137, 1532, 1059, 110, 67, 738, 159, 1532, 109, 39, 3030 733, 851, 1193, 1194, 835, 294, 115, 116, 110, 110, 3031 110, 1532, 1103, 713, 116, 116, 116, 733, 1546, 719, 3032 116, 117, 185, 723, 1552, 115, 1133, 67, 220, 109, 3033 1137, 1138, 109, 110, 111, 1563, 109, 132, 111, 1567, 3034 773, 703, 110, 705, 894, 208, 119, 609, 116, 611, 3035 72, 901, 902, 110, 76, 110, 111, 220, 250, 116, 3036 64, 83, 84, 110, 1, 109, 1162, 111, 1135, 116, 3037 72, 902, 74, 75, 924, 85, 86, 87, 1057, 109, 3038 1292, 83, 84, 72, 630, 74, 75, 109, 938, 832, 3039 58, 59, 110, 902, 83, 84, 946, 119, 116, 109, 3040 646, 111, 109, 113, 114, 110, 112, 109, 45, 132, 3041 110, 116, 114, 110, 964, 661, 116, 115, 116, 116, 3042 109, 114, 109, 680, 111, 114, 1193, 1194, 114, 72, 3043 969, 74, 75, 76, 984, 109, 698, 111, 700, 114, 3044 83, 84, 109, 993, 111, 109, 1253, 1243, 109, 110, 3045 111, 1001, 132, 442, 1004, 109, 1006, 111, 82, 902, 3046 72, 132, 74, 75, 109, 328, 109, 104, 111, 902, 3047 1125, 83, 84, 110, 117, 984, 119, 72, 109, 74, 3048 75, 82, 744, 745, 116, 117, 902, 476, 83, 84, 3049 112, 109, 1001, 111, 894, 1004, 970, 1006, 109, 110, 3050 111, 901, 114, 902, 120, 1055, 116, 117, 145, 109, 3051 110, 111, 758, 1404, 128, 1065, 111, 154, 1068, 1069, 3052 1070, 58, 59, 60, 513, 1265, 1266, 1267, 1507, 518, 3053 1421, 1062, 521, 72, 1341, 74, 75, 76, 1345, 129, 3054 432, 94, 405, 1093, 83, 84, 1055, 1021, 44, 45, 3055 10, 11, 12, 13, 14, 131, 1065, 111, 815, 1068, 3056 1069, 1070, 564, 565, 566, 567, 109, 204, 825, 109, 3057 969, 208, 110, 1206, 1207, 1125, 1209, 839, 1557, 39, 3058 112, 1024, 1215, 840, 72, 1218, 74, 75, 1222, 851, 3059 560, 561, 112, 993, 110, 83, 84, 562, 563, 491, 3060 110, 238, 239, 1494, 1495, 110, 72, 67, 74, 75, 3061 76, 110, 72, 110, 74, 75, 76, 83, 84, 1062, 3062 568, 569, 109, 83, 84, 902, 112, 111, 131, 1062, 3063 112, 114, 109, 270, 114, 116, 273, 1404, 114, 112, 3064 1447, 533, 110, 109, 45, 111, 1062, 110, 112, 109, 3065 1200, 111, 117, 119, 1421, 112, 112, 294, 112, 119, 3066 297, 29, 117, 1062, 117, 116, 1205, 110, 110, 114, 3067 117, 112, 1222, 110, 132, 115, 938, 1227, 3, 115, 3068 115, 109, 116, 110, 946, 10, 11, 12, 13, 14, 3069 679, 110, 969, 1093, 116, 110, 1227, 117, 110, 688, 3070 110, 110, 964, 692, 341, 116, 598, 344, 1247, 110, 3071 110, 110, 3, 110, 39, 1265, 1266, 1267, 1227, 10, 3072 11, 12, 13, 14, 110, 110, 363, 1494, 1495, 1162, 3073 367, 110, 110, 370, 10, 11, 12, 13, 14, 110, 3074 110, 110, 67, 110, 110, 1400, 1379, 110, 39, 29, 3075 115, 643, 644, 645, 131, 112, 1265, 1266, 1267, 110, 3076 110, 1204, 1542, 39, 110, 110, 114, 116, 112, 112, 3077 662, 110, 1322, 1323, 110, 1306, 67, 110, 116, 110, 3078 117, 116, 1039, 1040, 1227, 1062, 116, 116, 425, 426, 3079 112, 67, 116, 110, 1227, 110, 112, 85, 86, 87, 3080 1200, 1340, 1532, 1532, 109, 1204, 1205, 208, 109, 1532, 3081 1243, 1227, 109, 1322, 1323, 1533, 453, 109, 112, 456, 3082 1532, 109, 1533, 111, 109, 113, 114, 1377, 1227, 1532, 3083 1380, 1532, 132, 109, 1532, 111, 117, 474, 239, 1557, 3084 1097, 1098, 115, 119, 736, 110, 1557, 110, 1247, 1399, 3085 1400, 115, 1507, 110, 129, 115, 114, 112, 1301, 1409, 3086 1410, 132, 499, 1306, 501, 110, 503, 116, 1377, 270, 3087 112, 1380, 116, 1306, 112, 1425, 513, 110, 515, 110, 3088 1430, 518, 110, 520, 521, 112, 471, 112, 112, 110, 3089 1306, 47, 112, 294, 112, 532, 297, 112, 1448, 115, 3090 1409, 1410, 1301, 132, 1443, 110, 132, 1306, 115, 132, 3091 1460, 117, 110, 132, 115, 132, 1425, 112, 112, 112, 3092 112, 1430, 72, 112, 74, 75, 76, 112, 1205, 112, 3093 112, 110, 110, 83, 84, 1466, 828, 926, 112, 1448, 3094 112, 1340, 1473, 835, 0, 1, 109, 109, 1532, 586, 3095 1227, 1460, 109, 1532, 1532, 60, 110, 1507, 1508, 109, 3096 597, 111, 55, 600, 110, 114, 132, 1517, 112, 119, 3097 1247, 112, 117, 1523, 110, 112, 32, 110, 1528, 96, 3098 96, 109, 1532, 1533, 109, 1533, 115, 110, 112, 45, 3099 132, 110, 629, 42, 116, 1526, 1546, 634, 1548, 1508, 3100 110, 110, 1552, 640, 117, 1555, 132, 1557, 1517, 1557, 3101 902, 67, 105, 1563, 1523, 108, 1273, 1567, 132, 1528, 3102 110, 110, 96, 1466, 1281, 1282, 1283, 96, 132, 1306, 3103 1473, 110, 110, 1466, 132, 117, 132, 1546, 110, 1548, 3104 1473, 112, 110, 1552, 1443, 115, 1555, 132, 104, 112, 3105 1466, 109, 453, 115, 1563, 456, 132, 1473, 1567, 696, 3106 115, 154, 110, 1340, 64, 110, 132, 1466, 1542, 110, 3107 110, 1077, 1329, 571, 1473, 570, 1227, 969, 572, 64, 3108 64, 718, 573, 1526, 1073, 574, 1495, 1385, 1567, 74, 3109 146, 1316, 1138, 1526, 986, 680, 1473, 81, 154, 155, 3110 1345, 1093, 705, 946, 4, 5, 6, 7, 8, 9, 3111 1526, 748, 513, 453, 515, 471, 116, 518, 723, 453, 3112 521, 948, 993, 590, 217, 894, 966, 1526, 658, 185, 3113 1247, 116, 116, 33, 578, 772, 491, 758, 10, 11, 3114 12, 13, 14, -1, 200, 578, 748, 203, 204, 578, 3115 1042, 1043, 208, 1399, -1, -1, -1, -1, -1, 159, 3116 -1, -1, -1, -1, -1, -1, 1443, 39, -1, 69, 3117 1062, 71, -1, 229, 159, 159, -1, 233, 271, 235, 3118 72, -1, 74, 75, 76, 278, -1, -1, 244, 1466, 3119 -1, 83, 84, 830, 250, 67, 1473, 834, -1, 255, 3120 72, -1, 74, 75, 76, -1, -1, -1, -1, 265, 3121 -1, 83, 84, -1, -1, -1, -1, 273, 283, -1, 3122 220, -1, -1, -1, -1, -1, 26, 27, 28, -1, 3123 815, 296, 297, -1, -1, 220, 220, 109, -1, 111, 3124 825, -1, -1, 308, -1, -1, -1, 119, -1, 1526, 3125 -1, -1, -1, -1, 347, 840, -1, -1, 258, -1, 3126 -1, -1, 262, 10, 11, 12, 13, 14, -1, -1, 3127 1532, 364, -1, 258, 258, 368, -1, 262, 262, 344, 3128 -1, -1, -1, -1, -1, 341, -1, 924, 344, -1, 3129 -1, 928, 39, 278, 350, -1, -1, 97, -1, 99, 3130 -1, -1, -1, -1, -1, -1, -1, 363, -1, -1, 3131 947, 367, 1204, 1205, 370, 380, -1, 718, -1, -1, 3132 67, -1, -1, -1, 680, 72, 1315, 74, 75, 76, 3133 -1, 968, 969, 970, -1, 1227, 83, 84, 431, -1, 3134 72, -1, 74, 75, 76, -1, -1, -1, -1, 349, 3135 -1, 83, 84, -1, -1, 1247, 72, -1, 74, 75, 3136 76, 417, 109, -1, 349, 349, -1, 83, 84, -1, 3137 -1, 72, 119, 74, 75, 76, 432, 109, -1, 111, 3138 180, 437, 83, 84, 1021, -1, -1, 119, -1, 445, 3139 190, 191, -1, 109, -1, 195, -1, 197, 198, -1, 3140 1292, 1293, -1, 119, -1, -1, -1, -1, 109, 1301, 3141 -1, -1, -1, -1, 1306, 471, -1, -1, 474, -1, 3142 51, -1, 53, -1, -1, 56, 57, 58, -1, 60, 3143 430, -1, -1, 489, -1, 491, -1, -1, -1, -1, 3144 -1, -1, -1, 499, 75, 430, 430, 503, 1340, 10, 3145 11, 12, 13, 14, 1039, 1040, 87, 88, -1, 815, 3146 -1, -1, 447, -1, -1, 1102, 1103, -1, -1, 825, 3147 72, -1, 74, 75, 76, -1, 532, 533, 39, -1, 3148 480, 83, 84, -1, 840, 1474, -1, 1476, -1, -1, 3149 -1, -1, 557, 558, 559, 480, 480, 72, -1, 74, 3150 75, 76, -1, -1, 597, -1, 67, 109, 83, 84, 3151 -1, -1, 1097, 1098, -1, -1, -1, 119, -1, -1, 3152 -1, -1, 1511, 579, 1513, 1417, -1, 928, -1, -1, 3153 -1, -1, -1, -1, 109, 600, -1, 630, -1, -1, 3154 -1, 597, 598, -1, 600, -1, 947, -1, 109, -1, 3155 111, 1443, -1, 646, -1, 611, -1, -1, 119, -1, 3156 -1, -1, -1, -1, -1, -1, -1, 1556, 661, 1558, 3157 -1, -1, -1, 629, 1466, -1, -1, -1, 634, -1, 3158 -1, 1473, 1571, 1572, 640, 1222, -1, 643, 644, 645, 3159 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3160 0, -1, -1, 603, -1, -1, 662, -1, -1, -1, 3161 1247, -1, -1, -1, -1, -1, -1, -1, 603, 603, 3162 -1, -1, -1, -1, 680, -1, -1, -1, -1, -1, 3163 -1, 631, 32, -1, 1526, 691, 636, -1, -1, -1, 3164 696, 697, -1, -1, 700, -1, 631, 631, -1, -1, 3165 -1, 636, 636, -1, -1, -1, 1241, -1, -1, -1, 3166 -1, -1, -1, -1, -1, 758, -1, 67, -1, 734, 3167 -1, -1, -1, -1, -1, -1, -1, 733, -1, -1, 3168 736, -1, -1, 1039, 1040, -1, -1, -1, 1273, 745, 3169 -1, -1, 748, -1, -1, -1, 1281, 1282, 1283, -1, 3170 -1, 1102, -1, 1340, -1, -1, -1, -1, -1, -1, 3171 -1, -1, -1, 344, 345, 780, 772, 773, -1, -1, 3172 -1, -1, 778, -1, 724, 356, 357, -1, -1, 26, 3173 27, 28, -1, -1, -1, -1, -1, -1, 738, 724, 3174 724, 1097, 1098, -1, 1329, -1, -1, -1, -1, -1, 3175 -1, -1, -1, 738, 738, 155, -1, -1, -1, 815, 3176 -1, -1, 827, -1, -1, -1, -1, -1, -1, 825, 3177 -1, -1, 828, 758, 830, -1, -1, 833, 834, 835, 3178 -1, -1, 582, 583, 840, -1, -1, -1, -1, -1, 3179 -1, -1, -1, -1, 850, -1, -1, -1, -1, -1, 3180 97, -1, 99, -1, -1, -1, 1443, 10, 11, 12, 3181 13, 14, 612, -1, -1, 615, 616, -1, 618, -1, 3182 620, 621, -1, -1, -1, 625, 626, 124, -1, 229, 3183 -1, 924, 832, -1, -1, -1, 39, -1, 1475, -1, 3184 1477, -1, -1, -1, -1, -1, 902, 832, 832, -1, 3185 250, -1, -1, -1, -1, 255, 188, -1, -1, -1, 3186 -1, -1, -1, 195, 67, -1, -1, -1, 924, 72, 3187 -1, 74, 75, 76, -1, 1512, -1, 1514, -1, -1, 3188 83, 84, -1, 180, -1, 1241, -1, -1, -1, -1, 3189 -1, 188, -1, 190, 191, -1, -1, -1, 195, -1, 3190 197, 198, -1, -1, 960, 1542, 109, -1, 111, 709, 3191 710, -1, 968, 969, -1, 715, 119, 1273, -1, 10, 3192 11, 12, 13, 14, -1, 1281, 1282, 1283, -1, -1, 3193 986, -1, -1, -1, -1, 267, -1, -1, -1, 10, 3194 11, 12, 13, 14, -1, -1, -1, -1, 39, -1, 3195 350, -1, -1, -1, -1, -1, 1021, -1, -1, -1, 3196 -1, -1, -1, -1, -1, 1021, -1, -1, 39, -1, 3197 267, -1, -1, 1329, -1, -1, 67, -1, 1034, -1, 3198 -1, 72, -1, 1039, 1040, 76, 1042, 1043, -1, -1, 3199 -1, 323, 83, 84, -1, -1, 67, 1062, -1, 331, 3200 -1, 72, 334, 74, 75, 76, 1062, -1, -1, -1, 3201 -1, -1, 83, 84, -1, -1, -1, 417, 109, -1, 3202 -1, 0, -1, -1, 1024, -1, -1, -1, 119, -1, 3203 -1, -1, 432, -1, -1, -1, -1, 437, 109, 1024, 3204 1024, 1097, 1098, -1, -1, 445, -1, 1103, 119, -1, 3205 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, 3206 -1, -1, -1, -1, -1, 397, -1, -1, -1, 401, 3207 -1, 471, -1, -1, 1475, -1, 1477, -1, 97, 98, 3208 99, 100, 101, 102, 103, 104, 105, 106, 67, 489, 3209 -1, 491, -1, -1, 725, -1, 727, -1, -1, -1, 3210 -1, -1, -1, 734, 735, -1, 1162, -1, 739, -1, 3211 -1, 1512, 131, 1514, 1179, 10, 11, 12, 13, 14, 3212 751, -1, -1, -1, -1, 756, -1, -1, -1, 1222, 3213 -1, -1, -1, 533, -1, -1, -1, -1, -1, -1, 3214 -1, -1, -1, -1, 39, -1, -1, -1, -1, 1205, 3215 -1, 782, -1, -1, 486, -1, -1, -1, -1, -1, 3216 -1, -1, -1, -1, -1, -1, 1222, -1, -1, -1, 3217 -1, 1227, 67, -1, -1, -1, 155, 72, -1, -1, 3218 -1, 76, -1, -1, -1, 1241, -1, 1243, 83, 84, 3219 -1, 1247, -1, -1, -1, -1, 827, -1, 598, -1, 3220 -1, -1, -1, -1, 1204, -1, -1, -1, -1, -1, 3221 -1, -1, -1, -1, 109, -1, -1, 1273, -1, 1204, 3222 1204, -1, -1, -1, 119, 1281, 1282, 1283, -1, -1, 3223 -1, -1, -1, -1, -1, -1, 1292, 1293, -1, -1, 3224 -1, -1, -1, 643, 644, 645, 578, 579, -1, -1, 3225 1306, -1, -1, 884, 885, 886, 887, -1, 889, -1, 3226 -1, -1, 662, -1, -1, -1, -1, -1, -1, -1, 3227 -1, 250, -1, 1329, 905, -1, 255, -1, -1, -1, 3228 680, -1, -1, -1, 1340, 582, 583, -1, 919, -1, 3229 -1, 691, -1, -1, -1, -1, -1, 697, -1, 1099, 3230 -1, 1301, -1, -1, -1, -1, 1399, -1, -1, -1, 3231 -1, -1, -1, -1, -1, 612, 1301, 1301, 615, 616, 3232 -1, 618, -1, 620, 621, -1, -1, 958, 625, 626, 3233 -1, -1, -1, 733, -1, 667, 736, -1, -1, 671, 3234 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3235 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3236 -1, 1417, -1, -1, -1, -1, -1, 998, -1, 39, 3237 -1, 350, 704, 773, 1005, -1, -1, -1, -1, 1010, 3238 -1, -1, -1, -1, 1015, -1, 1017, 1443, -1, -1, 3239 1021, 1022, 1023, -1, -1, 1026, -1, 67, -1, -1, 3240 -1, -1, -1, -1, 1035, -1, -1, 704, 78, -1, 3241 1466, -1, 709, 710, -1, 815, -1, 1473, 715, -1, 3242 -1, -1, 1053, 1054, 1224, 825, -1, -1, 828, -1, 3243 -1, -1, -1, 833, -1, 835, -1, -1, 417, -1, 3244 840, -1, -1, -1, -1, -1, -1, -1, -1, 1080, 3245 -1, -1, 1083, 432, -1, -1, -1, -1, 437, -1, 3246 -1, -1, -1, -1, -1, -1, 445, -1, -1, -1, 3247 1526, -1, -1, -1, -1, -1, -1, 1533, -1, -1, 3248 -1, -1, -1, -1, -1, -1, -1, 819, -1, -1, 3249 -1, 1122, 471, -1, -1, -1, -1, 1128, 1129, -1, 3250 -1, -1, 902, -1, -1, -1, -1, -1, -1, 1140, 3251 489, -1, 491, 0, 1145, -1, -1, 1148, -1, 1150, 3252 -1, -1, 1153, -1, -1, -1, -1, -1, -1, -1, 3253 -1, -1, -1, -1, -1, 1166, -1, -1, -1, -1, 3254 -1, -1, -1, -1, -1, 32, 37, 38, 1179, 40, 3255 1181, 1182, 1183, 1184, 533, -1, -1, -1, -1, -1, 3256 -1, -1, -1, -1, -1, -1, 1197, -1, 1199, -1, 3257 -1, -1, 1203, -1, -1, 66, -1, -1, -1, -1, 3258 67, 72, -1, 74, 75, 76, 986, -1, 79, 80, 3259 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3260 932, 1232, 1233, 94, -1, -1, -1, -1, -1, -1, 3261 -1, -1, -1, -1, -1, -1, -1, -1, 109, 598, 3262 111, -1, 113, 114, -1, -1, -1, 118, 119, 120, 3263 121, 122, 123, -1, -1, -1, -1, -1, -1, 1039, 3264 1040, -1, 1042, 1043, -1, -1, -1, -1, -1, -1, 3265 -1, -1, -1, 1284, 1285, -1, -1, -1, -1, -1, 3266 -1, -1, 1062, 1294, 643, 644, 645, -1, 155, -1, 3267 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1011, 3268 -1, -1, -1, 662, -1, -1, -1, -1, -1, -1, 3269 -1, -1, -1, -1, -1, 1027, -1, 1097, 1098, -1, 3270 -1, 680, -1, -1, -1, -1, -1, -1, -1, -1, 3271 -1, -1, 691, -1, -1, 1346, -1, -1, 697, -1, 3272 -1, -1, -1, -1, -1, -1, -1, 1358, -1, 1360, 3273 1361, 1362, 37, 38, -1, 40, -1, -1, -1, -1, 3274 -1, 1372, -1, -1, -1, -1, -1, -1, -1, -1, 3275 1381, -1, -1, -1, 733, -1, -1, 736, -1, -1, 3276 -1, 66, 1162, 250, -1, -1, 1397, 72, 255, -1, 3277 -1, 76, 1104, -1, 79, 80, 81, 82, 83, 84, 3278 -1, 86, 87, -1, -1, -1, -1, -1, 0, 94, 3279 -1, -1, -1, -1, 773, -1, -1, -1, -1, -1, 3280 -1, -1, 1099, -1, 109, 1205, 111, -1, -1, 114, 3281 -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, 3282 32, -1, 1453, 1454, -1, -1, -1, 1227, -1, -1, 3283 -1, -1, -1, -1, -1, 1466, 815, -1, -1, -1, 3284 -1, 1241, 1473, 1243, -1, -1, 825, -1, -1, 828, 3285 -1, -1, -1, -1, 833, 67, 835, -1, -1, -1, 3286 -1, 840, -1, 350, -1, -1, -1, -1, -1, -1, 3287 -1, -1, -1, 1273, -1, 1506, -1, -1, -1, 1510, 3288 -1, 1281, 1282, 1283, -1, -1, -1, -1, -1, -1, 3289 -1, -1, 1292, 1293, -1, -1, -1, -1, -1, -1, 3290 -1, -1, -1, -1, -1, -1, 1306, -1, 1539, -1, 3291 1541, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3292 -1, -1, -1, 902, -1, -1, -1, 1224, -1, 1329, 3293 417, -1, -1, -1, -1, -1, -1, -1, 1569, 1570, 3294 -1, -1, -1, 155, -1, 432, 1577, 1578, -1, -1, 3295 437, -1, -1, -1, -1, -1, 0, -1, 445, 3, 3296 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3297 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3298 24, 25, 26, 27, 471, -1, 30, 31, 32, 33, 3299 -1, -1, 36, -1, -1, 39, 40, -1, -1, -1, 3300 -1, -1, 489, -1, 491, -1, -1, 986, -1, -1, 3301 -1, -1, -1, -1, -1, -1, -1, 1417, -1, -1, 3302 64, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3303 74, 75, 76, -1, -1, -1, -1, -1, 250, 83, 3304 84, -1, -1, 255, -1, -1, 533, -1, 7, -1, 3305 -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 3306 1039, 1040, -1, 1042, 1043, 109, 1466, 111, -1, -1, 3307 -1, -1, -1, 1473, -1, 119, -1, -1, 37, 38, 3308 39, 40, -1, 1062, -1, 10, 11, 12, 13, 14, 2836 3309 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2837 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2838 34, 0, 31, 0, 0, 0, 0, 38, 39, 0, 2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2840 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2841 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2842 0, 0, 642, 0, 339, 0, 0, 0, 0, 0, 2843 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2845 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 2846 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2847 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2848 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2849 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2850 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2851 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2852 34, 0, 31, 0, 0, 0, 0, 38, 39, 0, 2853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2854 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2855 34, 0, 0, 0, 0, 0, 0, 209, 39, 0, 2856 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 2857 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2859 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 2860 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2861 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2862 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2863 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2864 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2865 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2866 34, 0, 31, 0, 0, 0, 0, 38, 39, 0, 2867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2868 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2869 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2870 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, 2871 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2873 0, 0, 0, 0, 456, 0, 0, 0, 0, 0, 2874 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2875 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2876 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2877 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2878 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2879 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2880 34, 0, 31, 0, 0, 0, 0, 38, 39, 0, 2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2882 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2883 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2884 0, 0, 0, 0, 600, 0, 0, 0, 0, 0, 2885 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2887 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 2888 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2889 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2890 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2891 0, 0, 31, 0, 0, 2, 208, 4, 5, 6, 2892 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2893 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2894 34, 26, 27, 28, 0, 0, 0, 209, 39, 0, 2895 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2896 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2897 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2898 35, 0, 36, 0, 0, 38, 39, 0, 0, 0, 2899 0, 46, 47, 284, 285, 0, 286, 1062, 0, 1063, 2900 0, 0, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 2901 0, 0, 1550, 1072, 0, 0, 0, 1073, 1074, 0, 2902 33, -416, 287, 0, 0, 0, 0, 0, 1075, 0, 2903 0, 0, 289, 0, 0, 290, 291, 292, 293, 41, 2904 42, 0, 294, 295, 0, 0, 0, 0, 0, 0, 2905 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2906 0, 0, 0, 0, 0, 296, 0, 380, 0, 0, 2907 173, 0, 0, 0, 46, 47, 298, 299, 300, 301, 2908 0, 0, 0, 0, 1077, 0, 284, 285, -130, 286, 2909 1062, 0, 1063, 0, 0, 1064, 1065, 1066, 1067, 1068, 2910 1069, 1070, 1071, 0, 0, 0, 1072, 0, 0, 0, 2911 1073, 1074, 0, 33, 0, 287, 0, 0, 0, 0, 2912 0, 1075, 0, 0, 0, 289, 0, 0, 290, 291, 2913 292, 293, 41, 42, 0, 294, 295, 0, 0, 0, 2914 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 2915 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 2916 380, 0, 0, 173, 0, 0, 0, 46, 47, 298, 2917 299, 300, 301, 0, 0, 0, 0, 1077, 0, 0, 2918 0, -130, 2, 208, 4, 5, 6, 7, 8, 9, 2919 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2920 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2921 28, 0, 0, 0, 0, 0, 0, 31, 0, 284, 2922 285, 0, 286, 1062, 0, 1063, 1420, 1421, 1064, 1065, 2923 1066, 1067, 1068, 1069, 1070, 1071, 0, 0, 1550, 1072, 2924 0, 0, 0, 1073, 1074, 34, 33, 35, 287, 36, 2925 0, 0, 38, 39, 1075, 0, 0, 0, 289, 0, 2926 0, 290, 291, 292, 293, 41, 42, 0, 294, 295, 2927 0, 0, 0, 0, 1329, 0, 43, 0, 0, 0, 2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2929 0, 296, 0, 380, 0, 0, 173, 0, 0, 0, 2930 46, 47, 298, 299, 300, 301, 0, 0, 284, 285, 2931 1077, 286, 1062, 0, 1063, 1420, 1421, 1064, 1065, 1066, 2932 1067, 1068, 1069, 1070, 1071, 0, 0, 0, 1072, 0, 2933 0, 0, 1073, 1074, 0, 33, 0, 287, 0, 0, 2934 0, 0, 0, 1075, 0, 0, 0, 289, 0, 0, 2935 290, 291, 292, 293, 41, 42, 0, 294, 295, 0, 2936 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2938 296, 0, 380, 0, 0, 173, 0, 0, 0, 46, 2939 47, 298, 299, 300, 301, 0, 0, 284, 285, 1077, 2940 286, 1062, 0, 1063, 0, 0, 1064, 1065, 1066, 1067, 2941 1068, 1069, 1070, 1071, 0, 0, 0, 1072, 0, 0, 2942 0, 1073, 1074, 0, 33, 0, 287, 0, 0, 0, 2943 0, 0, 1075, 0, 0, 0, 289, 0, 0, 290, 2944 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2945 0, 0, 0, 0, 43, 284, 285, 0, 286, 0, 2946 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 2947 0, 380, 0, 0, 173, 0, 0, 0, 46, 47, 2948 298, 299, 300, 301, 287, 0, 0, 0, 1077, 0, 2949 648, 0, 0, 0, 289, 0, 0, 290, 291, 292, 2950 293, 41, 42, 0, 294, 295, 0, 0, 0, 0, 2951 0, 0, 43, 284, 285, 0, 286, 0, 0, 0, 2952 0, 0, 0, 0, 0, 0, 0, 296, 0, 784, 2953 0, 0, 284, 285, 0, 286, 46, 47, 298, 299, 2954 300, 301, 287, 0, 0, 0, 0, 0, 288, 0, 2955 0, 0, 289, 0, 0, 290, 291, 292, 293, 41, 2956 42, 287, 294, 295, 0, 0, 0, 288, 0, 0, 2957 43, 289, 0, 0, 290, 291, 292, 293, 41, 42, 2958 0, 294, 295, 0, 0, 296, 0, 380, 0, 43, 2959 284, 285, 0, 286, 345, 47, 298, 299, 300, 301, 2960 0, 0, 0, 0, 296, 0, 0, 0, 0, 284, 2961 285, 0, 286, 46, 47, 298, 299, 300, 301, 287, 2962 0, 0, 0, 0, 0, 288, 0, 0, 0, 289, 2963 0, 0, 290, 291, 292, 293, 41, 42, 287, 294, 2964 295, 0, 0, 0, 288, 0, 0, 43, 289, 0, 2965 0, 290, 291, 292, 293, 41, 42, 0, 294, 295, 2966 0, 0, 520, 0, 0, 0, 43, 0, 0, 0, 2967 0, 46, 47, 298, 299, 300, 301, 0, 0, 0, 2968 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 2969 46, 47, 298, 299, 300, 301, 2, 208, 4, 5, 3310 25, 26, 27, 28, -1, -1, -1, 66, 67, -1, 3311 -1, 598, -1, 72, 39, -1, -1, 76, 1097, 1098, 3312 79, 80, 81, 82, 83, 84, 1526, 86, 87, -1, 3313 -1, -1, -1, -1, -1, 94, -1, -1, 350, -1, 3314 -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 3315 109, -1, 111, 78, -1, -1, 643, 644, 645, 118, 3316 119, 120, 121, 122, 123, -1, -1, -1, -1, -1, 3317 -1, -1, -1, -1, -1, 662, -1, -1, -1, -1, 3318 -1, -1, -1, 1162, -1, -1, -1, -1, -1, -1, 3319 -1, -1, -1, 680, -1, -1, -1, -1, -1, -1, 3320 -1, -1, -1, -1, 691, 417, -1, -1, -1, 45, 3321 697, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3322 432, -1, -1, -1, -1, 437, 1205, -1, 64, -1, 3323 -1, -1, -1, 445, -1, -1, -1, -1, -1, -1, 3324 -1, -1, -1, -1, -1, -1, 733, -1, 1227, 736, 3325 -1, -1, -1, -1, -1, -1, -1, -1, -1, 471, 3326 -1, -1, 1241, -1, 1243, -1, -1, -1, -1, -1, 3327 -1, -1, -1, -1, 110, -1, -1, 489, -1, 491, 3328 116, -1, -1, -1, -1, -1, 773, -1, -1, -1, 3329 -1, -1, -1, -1, 1273, -1, -1, -1, -1, -1, 3330 -1, -1, 1281, 1282, 1283, -1, -1, -1, -1, 145, 3331 -1, -1, -1, 1292, 1293, -1, -1, -1, -1, 155, 3332 -1, 533, -1, 159, -1, -1, -1, 1306, 815, -1, 3333 -1, -1, -1, -1, -1, -1, -1, -1, 825, -1, 3334 -1, 828, -1, -1, -1, -1, 833, -1, 835, -1, 3335 1329, -1, -1, 840, 10, 11, 12, 13, 14, 15, 3336 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3337 26, 27, 208, -1, 30, 31, 32, -1, -1, -1, 3338 -1, -1, -1, 39, 220, -1, 598, -1, -1, -1, 3339 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3340 -1, -1, 238, 239, -1, -1, -1, -1, -1, -1, 3341 -1, 67, -1, -1, -1, 902, -1, -1, 74, 75, 3342 -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, 3343 -1, 643, 644, 645, 270, -1, -1, -1, 1417, -1, 3344 -1, -1, -1, -1, 281, -1, 283, 284, -1, -1, 3345 662, -1, -1, -1, 291, 292, -1, -1, 294, 296, 3346 297, 297, -1, 119, -1, -1, -1, -1, 680, -1, 3347 -1, 308, -1, -1, -1, -1, -1, -1, -1, 691, 3348 -1, -1, -1, -1, -1, 697, -1, 1466, 37, 38, 3349 -1, 40, -1, -1, 1473, -1, -1, -1, -1, 986, 3350 -1, -1, -1, -1, -1, -1, -1, 344, 344, -1, 3351 -1, -1, -1, 349, -1, -1, -1, 66, -1, -1, 3352 -1, 733, -1, 72, 736, -1, -1, 76, -1, -1, 3353 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3354 -1, -1, -1, 380, -1, 94, -1, 1526, -1, -1, 3355 -1, -1, 1039, 1040, -1, 1042, 1043, -1, -1, -1, 3356 109, 773, 111, -1, -1, -1, -1, -1, 117, 118, 3357 119, 120, 121, 122, 123, 1062, -1, -1, -1, -1, 3358 -1, -1, -1, -1, -1, 64, -1, -1, -1, 425, 3359 426, -1, -1, -1, -1, 74, 432, 76, -1, 78, 3360 -1, -1, -1, 815, -1, -1, 85, -1, -1, -1, 3361 1097, 1098, -1, 825, -1, -1, 828, 453, -1, -1, 3362 456, 833, -1, 835, -1, -1, -1, -1, 840, -1, 3363 -1, -1, -1, -1, -1, -1, -1, 116, -1, 118, 3364 119, 120, -1, -1, -1, -1, -1, -1, -1, -1, 3365 -1, -1, -1, 489, -1, -1, -1, -1, -1, -1, 3366 -1, -1, -1, -1, -1, 501, -1, -1, -1, -1, 3367 -1, -1, -1, -1, -1, 1162, -1, 513, -1, 515, 3368 159, -1, 518, -1, 520, 521, -1, -1, -1, -1, 3369 902, -1, -1, -1, -1, -1, -1, 533, -1, -1, 3370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3371 -1, -1, -1, -1, -1, -1, -1, -1, 1205, -1, 3372 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 3373 567, 568, 569, 570, 571, 572, 573, 574, -1, -1, 3374 1227, 220, -1, 222, 223, 224, -1, -1, -1, -1, 3375 586, -1, -1, -1, 1241, -1, 1243, -1, -1, -1, 3376 -1, -1, 598, 600, 600, -1, -1, 603, -1, -1, 3377 -1, -1, -1, -1, 986, -1, -1, -1, -1, 258, 3378 -1, -1, -1, 262, -1, -1, 1273, -1, -1, -1, 3379 -1, -1, -1, 629, 1281, 1282, 1283, -1, 634, 278, 3380 -1, -1, -1, -1, -1, 1292, 1293, 643, 644, 645, 3381 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1306, 3382 -1, -1, -1, -1, -1, -1, 662, 1039, 1040, -1, 3383 1042, 1043, -1, -1, -1, -1, -1, -1, -1, -1, 3384 -1, -1, 1329, -1, -1, -1, -1, -1, -1, 328, 3385 1062, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3386 -1, 697, 699, -1, -1, -1, -1, -1, -1, -1, 3387 349, -1, -1, -1, -1, 354, 355, 44, -1, -1, 3388 -1, -1, 718, 362, 721, 1097, 1098, -1, -1, -1, 3389 -1, -1, -1, -1, -1, -1, -1, 734, -1, -1, 3390 736, -1, 738, 10, 11, 12, 13, 14, 15, 16, 3391 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3392 27, -1, -1, 90, -1, -1, 405, -1, -1, -1, 3393 1417, -1, 39, 100, -1, -1, -1, 773, -1, -1, 3394 -1, -1, -1, 780, 423, -1, -1, -1, -1, 428, 3395 1162, 430, -1, -1, -1, -1, -1, -1, -1, -1, 3396 67, -1, -1, -1, -1, -1, -1, -1, 447, -1, 3397 -1, 450, 451, -1, -1, 812, -1, -1, -1, 1466, 3398 -1, -1, -1, -1, -1, -1, 1473, 466, -1, 156, 3399 827, -1, 828, 1205, -1, -1, 832, -1, -1, 835, 3400 -1, 480, -1, 170, -1, -1, -1, -1, 487, -1, 3401 -1, -1, -1, -1, -1, 1227, -1, -1, -1, -1, 3402 -1, -1, -1, -1, -1, -1, 193, -1, -1, 1241, 3403 -1, 1243, -1, -1, -1, -1, -1, -1, -1, 1526, 3404 207, -1, -1, -1, -1, -1, -1, -1, -1, 216, 3405 -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, 3406 -1, 1273, -1, -1, -1, -1, -1, -1, -1, 1281, 3407 1282, 1283, -1, -1, -1, -1, -1, -1, -1, -1, 3408 1292, 1293, -1, -1, 251, -1, -1, -1, -1, 256, 3409 -1, -1, 928, -1, 1306, -1, -1, -1, -1, -1, 3410 -1, -1, 269, -1, -1, -1, -1, -1, 275, -1, 3411 277, 947, -1, -1, -1, -1, -1, 1329, -1, -1, 3412 -1, -1, -1, -1, 603, -1, -1, -1, 295, -1, 3413 -1, -1, -1, -1, 970, -1, -1, -1, -1, -1, 3414 -1, 978, -1, -1, -1, -1, -1, -1, -1, -1, 3415 986, -1, 631, -1, -1, -1, -1, 636, -1, -1, 3416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3417 -1, 338, 1009, -1, -1, -1, 343, -1, -1, -1, 3418 -1, -1, -1, -1, 1021, 1021, -1, -1, -1, -1, 3419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3420 -1, -1, -1, -1, 371, 1417, 1042, 1043, 375, 376, 3421 -1, 378, -1, -1, -1, -1, -1, -1, 385, 386, 3422 -1, 388, 389, -1, 391, 1062, 393, -1, -1, -1, 3423 -1, -1, 7, -1, -1, 10, 11, 12, 13, 14, 3424 -1, -1, -1, 410, -1, 724, -1, -1, -1, -1, 3425 -1, 418, -1, -1, 1466, -1, -1, -1, -1, 738, 3426 -1, 1473, 37, 38, 39, 40, 1102, -1, -1, -1, 3427 -1, -1, -1, -1, -1, -1, 443, -1, -1, 758, 3428 -1, -1, -1, -1, -1, -1, -1, 454, -1, -1, 3429 -1, 66, 67, -1, -1, -1, -1, 72, 1135, -1, 3430 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3431 477, 86, 87, -1, 1526, -1, 483, -1, -1, 94, 3432 -1, 488, -1, -1, -1, -1, 1162, -1, -1, -1, 3433 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3434 819, -1, 1179, 118, 119, 120, 121, 122, 123, -1, 3435 -1, -1, -1, 832, -1, -1, 1193, 1194, 525, -1, 3436 -1, -1, -1, -1, -1, -1, -1, -1, 1204, -1, 3437 -1, -1, 851, -1, 541, -1, -1, -1, -1, -1, 3438 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3439 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3440 22, 23, 24, 25, 26, 27, -1, 1243, 30, 31, 3441 32, 578, -1, -1, -1, -1, -1, 39, -1, -1, 3442 587, -1, -1, -1, -1, -1, -1, 594, -1, -1, 3443 -1, -1, 599, -1, -1, -1, -1, -1, -1, -1, 3444 -1, -1, -1, 610, -1, 67, -1, 69, -1, 71, 3445 72, -1, 74, 75, 76, -1, 1292, 1293, -1, 938, 3446 -1, 83, 84, -1, -1, 1301, -1, -1, -1, -1, 3447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3448 -1, -1, -1, -1, 651, 964, -1, 109, -1, 111, 3449 -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, 3450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3451 -1, -1, -1, 992, -1, -1, -1, -1, -1, -1, 3452 687, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3453 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3454 24, 25, 26, 27, 28, 1024, 30, 31, 32, -1, 3455 -1, -1, -1, -1, -1, 39, 1035, -1, -1, -1, 3456 -1, -1, -1, -1, -1, -1, -1, 1404, -1, -1, 3457 -1, -1, -1, -1, -1, 742, -1, -1, -1, -1, 3458 -1, 1417, -1, 67, 1421, 752, 753, -1, -1, -1, 3459 74, 75, -1, -1, 78, -1, -1, -1, -1, 766, 3460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3461 -1, -1, -1, -1, -1, -1, 783, -1, 785, -1, 3462 -1, -1, 789, -1, -1, 109, -1, 111, -1, -1, 3463 -1, -1, -1, -1, -1, 119, -1, -1, 1117, 1475, 3464 -1, 1477, -1, -1, -1, -1, -1, -1, -1, -1, 3465 -1, -1, -1, -1, -1, -1, -1, 1494, 1495, -1, 3466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3467 37, 38, -1, 40, -1, -1, 1512, -1, 1514, -1, 3468 -1, -1, -1, -1, -1, -1, -1, -1, 855, -1, 3469 -1, -1, -1, -1, -1, 862, -1, -1, -1, 66, 3470 -1, -1, -1, -1, -1, 72, 1542, -1, 875, 76, 3471 877, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3472 87, -1, -1, -1, 891, 1204, -1, 94, -1, -1, 3473 -1, 898, -1, -1, -1, -1, -1, -1, -1, -1, 3474 -1, -1, 109, 910, 111, -1, 913, -1, -1, 116, 3475 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 3476 -1, -1, -1, -1, 931, -1, -1, -1, -1, -1, 3477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3478 -1, -1, -1, -1, 154, 155, -1, -1, -1, -1, 3479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481 -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, 3482 -1, -1, 1301, -1, -1, 195, -1, 3, 4, 5, 2970 3483 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2971 3484 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2973 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2975 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2976 0, 35, 0, 36, 37, 0, 176, 177, 40, 0, 2977 0, 0, 0, 0, 0, 41, 42, 207, 2, 208, 3485 26, 27, -1, 1020, 30, 31, 32, 33, -1, -1, 3486 36, -1, -1, 39, 40, 10, 11, 12, 13, 14, 3487 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3488 25, 26, 27, -1, -1, 30, 31, 32, 64, -1, 3489 -1, 67, -1, 69, 39, 71, 72, 267, 74, 75, 3490 76, -1, -1, -1, -1, -1, -1, 83, 84, 1076, 3491 -1, -1, -1, -1, -1, -1, 1083, -1, -1, -1, 3492 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3493 75, -1, -1, 109, -1, 111, -1, -1, -1, 115, 3494 -1, -1, -1, 119, -1, 145, 1113, -1, -1, -1, 3495 -1, 1118, -1, 323, -1, 155, -1, -1, -1, 1126, 3496 -1, 331, 332, -1, 334, 335, -1, 167, 168, -1, 3497 -1, -1, -1, -1, 344, -1, -1, -1, 348, -1, 3498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3499 1157, -1, -1, -1, -1, -1, -1, 367, -1, -1, 3500 370, -1, 1169, -1, -1, 1172, -1, 1174, -1, -1, 3501 37, 38, -1, 40, -1, -1, -1, -1, -1, -1, 3502 -1, 1188, 1189, -1, -1, -1, -1, 397, -1, -1, 3503 -1, 401, -1, -1, -1, -1, -1, -1, 238, 66, 3504 -1, -1, -1, 1210, -1, 72, -1, -1, -1, 76, 3505 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3506 87, -1, 432, 263, -1, -1, -1, 94, -1, -1, 3507 1237, -1, -1, -1, -1, -1, -1, -1, 1557, -1, 3508 -1, -1, 109, -1, 111, 455, -1, 114, -1, -1, 3509 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 3510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3511 -1, -1, -1, -1, -1, -1, 486, -1, -1, 489, 3512 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 3513 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3514 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3515 -1, 30, 31, 32, 33, -1, -1, 36, -1, 529, 3516 39, -1, 532, 533, -1, -1, -1, -1, 1335, -1, 3517 1337, -1, -1, -1, -1, -1, -1, -1, -1, 379, 3518 -1, -1, -1, 1350, -1, 1352, -1, -1, 67, -1, 3519 69, -1, 71, -1, -1, 74, 75, -1, -1, 78, 3520 -1, -1, -1, 1370, -1, -1, -1, -1, 578, 579, 3521 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1386, 3522 1387, -1, -1, -1, -1, -1, -1, 597, 598, -1, 3523 600, 1398, 111, -1, 1401, -1, -1, -1, -1, 609, 3524 119, 611, 612, -1, -1, -1, -1, -1, 618, -1, 3525 -1, -1, -1, -1, -1, -1, 1423, -1, 628, 629, 3526 -1, -1, -1, -1, 634, 1432, -1, -1, 1435, -1, 3527 1437, 1438, 1439, 643, 644, 645, -1, -1, -1, -1, 3528 -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, 3529 -1, -1, 662, -1, -1, -1, -1, 667, 668, -1, 3530 -1, 671, 672, -1, -1, -1, -1, -1, 678, -1, 3531 -1, -1, 1479, -1, 1481, -1, -1, 1484, -1, -1, 3532 520, -1, -1, -1, -1, -1, 696, 697, 698, -1, 3533 700, -1, 1499, 533, 704, -1, -1, -1, -1, -1, 3534 540, -1, -1, 543, -1, -1, -1, -1, -1, -1, 3535 -1, -1, -1, -1, 554, 555, -1, -1, -1, -1, 3536 -1, -1, -1, -1, -1, -1, 736, 737, -1, -1, 3537 -1, -1, -1, -1, -1, -1, 576, -1, -1, -1, 3538 -1, -1, -1, -1, -1, -1, 586, -1, -1, -1, 3539 -1, -1, -1, 593, -1, -1, -1, -1, 598, -1, 3540 -1, -1, 772, 773, -1, -1, -1, 777, 778, -1, 3541 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 3542 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3543 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3544 -1, 30, 31, 32, 33, -1, -1, 36, 648, 819, 3545 39, 40, -1, -1, -1, -1, -1, 657, 828, -1, 3546 -1, -1, -1, -1, 834, 835, -1, -1, -1, 839, 3547 -1, 841, -1, -1, -1, 64, -1, -1, 67, -1, 3548 69, 851, 71, 72, -1, 74, 75, 76, -1, -1, 3549 -1, -1, -1, -1, 83, 84, -1, 697, -1, -1, 3550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3552 109, -1, 111, -1, -1, -1, -1, -1, -1, -1, 3553 119, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3554 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3555 25, 26, 27, 28, 924, 30, 31, 32, -1, -1, 3556 -1, -1, 932, -1, 39, -1, -1, -1, 938, -1, 3557 -1, -1, -1, 773, -1, 775, 946, -1, -1, -1, 3558 -1, 781, -1, -1, -1, -1, -1, -1, 788, 959, 3559 960, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3560 75, 76, -1, 78, -1, -1, -1, -1, 83, 84, 3561 -1, -1, -1, -1, -1, -1, 986, -1, -1, -1, 3562 -1, -1, 992, -1, -1, -1, -1, -1, -1, -1, 3563 -1, -1, 832, 833, 109, 835, 111, -1, -1, -1, 3564 -1, 1011, 1012, -1, 119, -1, -1, -1, -1, -1, 3565 850, 1021, -1, -1, -1, -1, -1, 1027, 1028, -1, 3566 1030, 1031, 1032, -1, -1, -1, -1, -1, -1, -1, 3567 -1, -1, 1042, 1043, -1, -1, -1, -1, -1, -1, 3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3569 890, -1, -1, -1, 894, 3, 4, 5, 6, 7, 3570 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3571 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3572 -1, -1, 30, 31, 32, 33, -1, -1, 36, -1, 3573 -1, 39, -1, 1103, 1104, 1105, -1, -1, -1, -1, 3574 -1, -1, -1, -1, -1, -1, -1, 1117, -1, -1, 3575 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3576 -1, 69, -1, 71, -1, -1, 74, 75, -1, -1, 3577 970, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3578 -1, -1, -1, -1, -1, -1, 986, 987, -1, -1, 3579 -1, -1, 1162, 993, -1, -1, -1, 37, 38, 999, 3580 40, -1, 1002, 111, 1004, -1, -1, -1, -1, -1, 3581 -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, 3582 -1, -1, -1, -1, 1024, -1, 66, -1, -1, -1, 3583 -1, -1, 72, -1, -1, 1035, 76, -1, -1, 79, 3584 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3585 -1, -1, 1222, -1, 94, 37, 38, 1057, 40, 1059, 3586 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3587 -1, 111, -1, 1243, 1074, 1075, -1, -1, 118, 119, 3588 120, 121, 122, 123, 66, -1, -1, -1, -1, -1, 3589 72, -1, -1, -1, 76, 1095, -1, 79, 80, 81, 3590 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3591 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3592 -1, -1, 1292, 1293, -1, -1, -1, 109, -1, 111, 3593 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 3594 122, 123, -1, 1143, -1, -1, -1, -1, -1, -1, 3595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3596 -1, -1, 1162, -1, -1, -1, -1, -1, -1, -1, 3597 -1, -1, -1, -1, -1, -1, -1, 1177, 1178, -1, 3598 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 3599 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3600 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3601 -1, -1, 30, 31, 32, 33, -1, -1, 36, 37, 3602 38, 39, 40, 41, -1, 43, -1, -1, 46, 47, 3603 48, 49, 50, 51, 52, 53, -1, -1, -1, 57, 3604 -1, -1, -1, 61, 62, -1, 64, 1417, 66, 67, 3605 -1, 69, -1, 71, 72, -1, 74, 75, 76, 1259, 3606 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3607 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3609 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 3610 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3611 128, -1, -1, -1, 132, -1, -1, -1, -1, -1, 3612 1320, -1, 1322, -1, -1, -1, -1, -1, -1, -1, 3613 -1, -1, -1, -1, -1, -1, -1, 1507, 10, 11, 3614 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3615 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3616 32, -1, 1532, 1533, -1, -1, -1, 39, -1, -1, 3617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3618 -1, -1, -1, -1, -1, -1, -1, 1557, -1, -1, 3619 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3620 -1, -1, 74, 75, -1, -1, -1, -1, 1408, -1, 3621 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 3622 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3623 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3624 -1, -1, 30, 31, 32, 33, -1, 119, 36, 37, 3625 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3626 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3627 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3628 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3629 1490, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3630 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3631 67, -1, -1, -1, -1, 72, -1, 74, 75, -1, 3632 -1, 109, -1, 111, -1, -1, 83, 84, -1, -1, 3633 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3634 -1, -1, 1542, -1, 132, 3, 4, 5, 6, 7, 3635 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3636 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3637 -1, -1, 30, 31, 32, 33, -1, -1, 36, 37, 3638 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3639 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3640 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3641 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3642 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3643 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3644 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3645 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3646 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3647 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3648 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3649 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3650 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3651 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3652 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3653 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3654 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3655 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3657 -1, 109, -1, 111, -1, -1, -1, -1, 116, -1, 3658 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3659 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3660 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3661 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3662 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3664 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3665 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3666 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3667 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3669 -1, 109, -1, 111, -1, -1, -1, -1, 116, -1, 3670 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3671 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3672 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3673 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3674 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3676 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3677 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3678 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3679 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3681 -1, 109, -1, 111, -1, -1, -1, -1, 116, -1, 3682 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3683 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3684 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3685 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3686 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3688 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3689 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3690 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3691 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3693 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3694 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3695 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3696 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3697 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3698 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3701 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3702 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3703 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3705 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3706 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3707 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3708 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3709 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3710 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3712 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3713 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3714 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3715 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3717 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3718 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3719 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3720 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3721 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3722 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3724 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3725 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3726 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3727 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3729 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3730 118, 119, 120, 121, 122, 123, 3, 4, 5, 6, 3731 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3732 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3733 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3734 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3737 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 2978 3738 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2979 3739 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2980 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2981 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2984 0, 34, 0, 35, 0, 36, 0, 0, 209, 39, 2985 476, 2, 208, 4, 5, 6, 7, 8, 9, 10, 2986 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2987 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2988 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 2989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2991 0, 0, 0, 0, 34, 0, 35, 0, 36, 0, 2992 0, 38, 39, 2, 208, 4, 5, 6, 7, 8, 3740 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3741 -1, -1, -1, -1, 111, 39, -1, -1, -1, -1, 3742 -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 3743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3744 -1, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3745 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 3746 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3748 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3749 -1, -1, -1, -1, -1, 119, 4, 5, 6, 7, 3750 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3751 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3752 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3753 -1, 39, -1, -1, -1, -1, 10, 11, 12, 13, 3754 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3755 24, 25, 26, 27, -1, -1, 30, 31, 32, 67, 3756 -1, 69, -1, 71, -1, 39, 74, 75, -1, 4, 3757 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3758 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3759 25, 26, 27, 67, -1, 30, 31, 32, 72, -1, 3760 74, 75, 110, 111, 39, -1, -1, -1, -1, 83, 3761 84, 119, -1, -1, -1, -1, -1, -1, -1, -1, 3762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3763 -1, -1, 67, -1, 69, -1, 71, 111, -1, 74, 3764 75, -1, -1, -1, -1, 119, -1, -1, -1, -1, 3765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3766 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, 3767 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3768 -1, -1, -1, -1, 119, 4, 5, 6, 7, 8, 2993 3769 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2994 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2995 27, 28, 0, 0, 0, 0, 0, 0, 31, 0, 2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2998 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2999 36, 0, 0, 209, 39 3000 }; 3001 3002 #define yypact_value_is_default(yystate) \ 3003 ((yystate) == (-1355)) 3004 3005 #define yytable_value_is_error(yytable_value) \ 3006 YYID (0) 3007 3008 static const yytype_int16 yycheck[] = 3009 { 3010 0, 1, 44, 44, 44, 0, 1, 0, 118, 1, 3011 542, 241, 221, 697, 187, 187, 187, 187, 187, 206, 3012 170, 171, 187, 501, 283, 697, 608, 505, 758, 58, 3013 628, 187, 32, 697, 522, 281, 107, 32, 997, 32, 3014 50, 610, 717, 350, 44, 655, 779, 900, 900, 458, 3015 50, 350, 0, 188, 82, 611, 608, 50, 188, 0, 3016 419, 617, 608, 608, 64, 579, 1420, 67, 610, 44, 3017 70, 64, 44, 1061, 67, 70, 32, 70, 70, 108, 3018 439, 0, 111, 1424, 32, 189, 157, 50, 447, 608, 3019 44, 32, 776, 203, 267, 267, 267, 267, 267, 0, 3020 39, 457, 267, 44, 776, 115, 296, 107, 95, 50, 3021 0, 267, 776, 32, 608, 115, 82, 51, 118, 119, 3022 109, 39, 72, 64, 608, 72, 67, 63, 157, 70, 3023 110, 32, 1339, 268, 28, 39, 346, 117, 268, 1004, 3024 1494, 1476, 32, 130, 58, 187, 187, 187, 148, 149, 3025 72, 117, 115, 1073, 1074, 82, 149, 157, 158, 263, 3026 264, 1042, 162, 39, 365, 44, 45, 110, 369, 162, 3027 109, 118, 111, 116, 530, 109, 1511, 258, 1513, 1041, 3028 1042, 1522, 132, 110, 78, 148, 1527, 187, 188, 1054, 3029 497, 220, 39, 111, 108, 188, 132, 111, 64, 44, 3030 45, 211, 411, 203, 82, 109, 1547, 111, 149, 1061, 3031 132, 211, 187, 1554, 109, 187, 85, 11, 211, 427, 3032 428, 162, 1142, 223, 743, 267, 267, 267, 491, 96, 3033 223, 109, 242, 187, 109, 1442, 115, 427, 428, 44, 3034 45, 241, 242, 109, 113, 274, 187, 188, 211, 743, 3035 82, 926, 281, 253, 513, 837, 123, 80, 253, 743, 3036 253, 261, 109, 273, 111, 230, 266, 267, 268, 114, 3037 211, 342, 407, 273, 1007, 268, 67, 407, 241, 111, 3038 849, 491, 223, 839, 249, 837, 296, 397, 111, 473, 3039 113, 837, 837, 84, 117, 503, 296, 253, 308, 1258, 3040 116, 372, 112, 116, 818, 253, 220, 849, 308, 114, 3041 273, 610, 253, 114, 522, 425, 132, 1305, 837, 132, 3042 349, 431, 457, 39, 324, 515, 267, 457, 119, 329, 3043 520, 690, 116, 523, 253, 82, 329, 366, 419, 949, 3044 1070, 370, 342, 837, 3, 308, 346, 39, 109, 3, 3045 350, 351, 253, 837, 489, 90, 91, 258, 439, 489, 3046 274, 1242, 109, 253, 116, 365, 447, 281, 258, 369, 3047 131, 162, 372, 1226, 1226, 957, 0, 1, 586, 642, 3048 643, 644, 515, 346, 517, 575, 1527, 520, 329, 958, 3049 523, 126, 127, 109, 0, 111, 597, 397, 661, 109, 3050 107, 642, 643, 644, 433, 957, 1547, 407, 32, 350, 3051 131, 1292, 957, 1554, 407, 698, 675, 109, 628, 111, 3052 661, 0, 1020, 633, 131, 425, 32, 427, 428, 1291, 3053 1292, 431, 223, 696, 434, 349, 96, 720, 639, 72, 3054 1527, 74, 75, 67, 116, 455, 70, 110, 458, 0, 3055 83, 84, 366, 1305, 117, 455, 370, 457, 458, 109, 3056 132, 67, 533, 123, 427, 428, 407, 1554, 131, 116, 3057 261, 72, 735, 1029, 1030, 266, 499, 1465, 111, 110, 3058 110, 481, 83, 84, 1472, 132, 696, 117, 966, 489, 3059 129, 491, 131, 493, 735, 679, 489, 497, 493, 473, 3060 493, 109, 761, 503, 109, 515, 656, 517, 109, 772, 3061 520, 757, 109, 523, 1002, 515, 457, 517, 419, 109, 3062 520, 111, 522, 523, 697, 697, 697, 697, 697, 419, 3063 530, 1141, 697, 533, 534, 1416, 945, 1525, 439, 116, 3064 503, 697, 849, 1408, 1409, 493, 447, 1116, 109, 439, 3065 849, 116, 493, 663, 1416, 132, 497, 447, 110, 522, 3066 351, 665, 772, 826, 699, 643, 644, 132, 597, 699, 3067 72, 116, 74, 75, 493, 1305, 82, 109, 578, 579, 3068 936, 83, 84, 661, 72, 826, 586, 132, 944, 612, 3069 491, 110, 493, 616, 110, 83, 84, 597, 598, 223, 3070 629, 110, 602, 493, 110, 115, 116, 109, 608, 690, 3071 610, 117, 114, 1465, 637, 112, 645, 223, 641, 116, 3072 1472, 131, 116, 586, 695, 72, 110, 828, 628, 253, 3073 814, 660, 833, 633, 990, 635, 83, 84, 132, 639, 3074 824, 432, 642, 643, 644, 80, 116, 253, 112, 112, 3075 598, 732, 1382, 116, 838, 962, 116, 735, 116, 116, 3076 110, 661, 132, 663, 111, 628, 116, 608, 109, 610, 3077 633, 109, 132, 1525, 132, 132, 111, 886, 113, 112, 3078 109, 110, 117, 116, 4, 5, 6, 7, 8, 9, 3079 72, 482, 1101, 976, 115, 695, 696, 697, 907, 699, 3080 771, 83, 84, 116, 116, 679, 109, 717, 4, 5, 3081 6, 7, 8, 9, 112, 629, 3, 717, 116, 132, 3082 132, 922, 72, 10, 11, 12, 13, 14, 757, 111, 3083 109, 645, 111, 83, 84, 735, 736, 737, 968, 1469, 3084 132, 1471, 892, 743, 744, 351, 660, 118, 826, 69, 3085 64, 71, 39, 124, 125, 109, 697, 72, 699, 74, 3086 75, 111, 4, 5, 6, 7, 8, 9, 83, 84, 3087 72, 771, 772, 69, 76, 71, 776, 777, 1041, 112, 3088 67, 83, 84, 116, 10, 11, 12, 13, 14, 690, 3089 1322, 33, 94, 72, 109, 696, 1526, 120, 121, 114, 3090 690, 936, 743, 744, 83, 84, 936, 109, 109, 944, 3091 1020, 602, 132, 39, 944, 110, 118, 119, 818, 110, 3092 1132, 116, 88, 89, 1136, 116, 826, 69, 828, 71, 3093 830, 732, 111, 833, 834, 286, 109, 837, 111, 630, 3094 814, 67, 732, 757, 635, 112, 1033, 1531, 871, 849, 3095 824, 1134, 92, 93, 1038, 1039, 132, 308, 309, 1531, 3096 110, 109, 112, 111, 838, 114, 116, 1531, 109, 493, 3097 111, 772, 72, 1132, 74, 75, 482, 1136, 1137, 110, 3098 114, 131, 132, 83, 84, 116, 834, 493, 1497, 0, 3099 1, 110, 114, 922, 1503, 346, 837, 116, 1161, 132, 3100 900, 1102, 109, 110, 111, 900, 1056, 132, 849, 1192, 3101 1193, 110, 1096, 1097, 114, 1524, 926, 116, 29, 30, 3102 1529, 32, 922, 110, 110, 109, 926, 111, 110, 116, 3103 116, 382, 723, 44, 116, 945, 936, 110, 109, 50, 3104 963, 82, 110, 116, 944, 945, 737, 58, 116, 110, 3105 109, 1161, 900, 64, 110, 116, 67, 957, 958, 70, 3106 116, 109, 962, 85, 86, 87, 112, 967, 968, 109, 3107 3, 111, 967, 84, 85, 967, 110, 10, 11, 12, 3108 13, 14, 116, 109, 984, 111, 109, 109, 111, 111, 3109 990, 113, 114, 1252, 82, 936, 110, 108, 110, 900, 3110 111, 119, 116, 944, 116, 968, 39, 118, 115, 116, 3111 900, 110, 128, 30, 1124, 1205, 1206, 116, 1208, 129, 3112 1020, 962, 94, 110, 630, 1215, 131, 1217, 1291, 116, 3113 94, 702, 1242, 704, 67, 109, 110, 111, 149, 830, 3114 111, 1041, 1042, 116, 117, 109, 157, 111, 109, 110, 3115 111, 162, 110, 111, 118, 119, 1240, 1020, 85, 86, 3116 87, 1061, 109, 3, 1038, 1039, 1061, 84, 85, 109, 3117 10, 11, 12, 13, 14, 112, 187, 188, 109, 110, 3118 111, 1340, 109, 112, 111, 1344, 113, 114, 1272, 58, 3119 59, 1101, 203, 58, 59, 60, 1280, 1281, 1282, 39, 3120 211, 1101, 1102, 1264, 1265, 1266, 557, 558, 559, 220, 3121 112, 94, 223, 1061, 110, 94, 1116, 723, 110, 230, 3122 1403, 110, 1096, 1097, 1124, 110, 109, 67, 111, 110, 3123 109, 737, 111, 110, 245, 118, 119, 1420, 249, 118, 3124 119, 109, 253, 254, 1328, 564, 565, 566, 567, 116, 3125 1506, 1222, 115, 116, 116, 117, 267, 268, 116, 117, 3126 1061, 1161, 698, 274, 44, 45, 560, 561, 568, 569, 3127 281, 1061, 10, 11, 12, 13, 14, 112, 72, 111, 3128 74, 75, 76, 112, 720, 562, 563, 1446, 1378, 83, 3129 84, 114, 131, 1222, 72, 114, 74, 75, 76, 114, 3130 1556, 39, 109, 1203, 1204, 83, 84, 1, 112, 1204, 3131 1493, 1494, 1204, 110, 110, 109, 117, 112, 329, 112, 3132 112, 112, 1222, 29, 830, 110, 1226, 117, 245, 67, 3133 117, 1226, 1023, 72, 116, 74, 75, 76, 349, 350, 3134 110, 112, 1242, 117, 83, 84, 1246, 114, 110, 115, 3135 72, 1246, 74, 75, 1246, 366, 94, 115, 115, 370, 3136 1161, 83, 84, 116, 109, 900, 1240, 110, 132, 110, 3137 381, 109, 116, 111, 110, 811, 900, 117, 1226, 110, 3138 118, 119, 110, 110, 116, 110, 397, 110, 29, 1399, 3139 110, 1291, 1292, 110, 900, 110, 407, 110, 1272, 110, 3140 1300, 110, 110, 110, 116, 1305, 1280, 1281, 1282, 110, 3141 1305, 1541, 110, 110, 425, 115, 112, 131, 110, 110, 3142 431, 110, 433, 110, 112, 1226, 72, 112, 779, 110, 3143 76, 110, 116, 110, 117, 110, 1226, 83, 84, 1339, 3144 116, 1242, 114, 967, 1339, 116, 457, 1339, 94, 112, 3145 116, 462, 888, 679, 1328, 116, 110, 1305, 1531, 1531, 3146 1531, 1531, 1531, 109, 381, 476, 1531, 67, 110, 1398, 3147 481, 115, 118, 119, 112, 1531, 109, 77, 489, 109, 3148 109, 72, 493, 74, 75, 76, 497, 109, 109, 500, 3149 1, 502, 83, 84, 117, 112, 1506, 1532, 132, 1399, 3150 110, 110, 1532, 115, 1305, 110, 132, 115, 114, 129, 3151 112, 522, 1203, 110, 112, 1305, 1416, 1023, 109, 119, 3152 116, 1556, 116, 112, 110, 536, 1556, 110, 539, 1064, 3153 541, 542, 110, 112, 47, 112, 112, 1061, 110, 50, 3154 976, 112, 1442, 112, 112, 462, 110, 1442, 132, 115, 3155 1442, 132, 132, 115, 117, 1061, 110, 132, 132, 112, 3156 254, 112, 162, 115, 1474, 1465, 1476, 112, 112, 112, 3157 1465, 1007, 1472, 112, 1474, 112, 1476, 1472, 112, 590, 3158 110, 110, 109, 500, 1398, 502, 597, 112, 814, 1531, 3159 1531, 1531, 112, 109, 109, 60, 107, 608, 824, 610, 3160 110, 1511, 110, 1513, 115, 114, 1506, 112, 132, 1300, 3161 117, 1511, 838, 1513, 112, 110, 112, 1465, 629, 110, 3162 96, 96, 1058, 223, 1472, 1525, 109, 109, 132, 115, 3163 1525, 1531, 1532, 112, 645, 116, 110, 148, 110, 1532, 3164 651, 1541, 110, 110, 42, 132, 157, 117, 132, 660, 3165 110, 662, 663, 664, 110, 96, 1556, 96, 110, 132, 3166 110, 261, 117, 1556, 1465, 110, 266, 110, 132, 1020, 3167 132, 1472, 112, 115, 112, 1465, 109, 1525, 1541, 1203, 3168 1204, 281, 1472, 132, 132, 115, 697, 115, 699, 110, 3169 1531, 1226, 110, 110, 56, 132, 207, 1203, 1134, 110, 3170 211, 712, 1226, 1077, 570, 1226, 1494, 718, 572, 1384, 3171 1061, 722, 571, 573, 1566, 1315, 1137, 574, 1344, 730, 3172 1226, 1472, 1246, 1092, 1525, 455, 455, 944, 704, 722, 3173 241, 242, 743, 744, 651, 1525, 71, 99, 946, 590, 3174 75, 892, 991, 78, 657, 80, 757, 50, 964, 747, 3175 1246, 351, 87, 757, 578, -1, 1192, 1193, 493, -1, 3176 578, 64, 273, -1, 67, 276, 578, 70, -1, -1, 3177 -1, -1, -1, -1, -1, -1, 1300, -1, -1, -1, 3178 -1, 1305, 476, -1, -1, 296, 1321, -1, -1, -1, 3179 -1, -1, -1, -1, 1300, 712, -1, 308, -1, 1305, 3180 -1, 718, -1, -1, -1, 722, -1, -1, -1, -1, 3181 -1, -1, 1038, 1039, -1, 1339, -1, -1, 72, -1, 3182 74, 75, 76, -1, -1, -1, 837, -1, 522, 83, 3183 84, 342, 432, 195, -1, 346, -1, -1, 849, -1, 3184 94, 1376, 536, -1, 1379, 539, 149, 541, 542, 449, 3185 -1, -1, -1, -1, 365, 109, 218, 111, 369, 162, 3186 -1, 372, -1, 117, 118, 119, 228, -1, -1, -1, 3187 1096, 1097, -1, -1, -1, -1, -1, -1, -1, 214, 3188 -1, 892, 482, -1, -1, 188, 67, -1, 899, 1424, 3189 -1, -1, -1, 72, 1429, -1, 590, 76, -1, 10, 3190 11, 12, 13, 14, 83, 84, -1, -1, 211, -1, 3191 -1, 922, -1, -1, -1, 94, 427, 428, 1442, -1, 3192 223, -1, -1, -1, 1459, 936, -1, -1, 39, -1, 3193 109, -1, 111, 944, 296, -1, -1, -1, 119, 118, 3194 119, 1465, -1, -1, 455, -1, -1, 458, 1472, -1, 3195 72, 962, 74, 75, 76, -1, 67, -1, -1, 1465, 3196 -1, 83, 84, -1, -1, 476, 1472, 1403, 662, -1, 3197 664, 982, 94, -1, -1, 892, -1, -1, -1, -1, 3198 991, 162, 899, 94, 1420, -1, -1, 109, 999, 111, 3199 501, 1002, 503, 1004, 505, -1, 118, 119, 109, -1, 3200 111, 1525, 602, -1, 515, -1, 517, 118, 119, 520, 3201 1545, 522, 523, -1, -1, -1, 1551, -1, 353, 1525, 3202 355, -1, 533, -1, -1, -1, 329, 1562, -1, -1, 3203 630, 1566, -1, 0, -1, 635, 730, 10, 11, 12, 3204 13, 14, 223, 1054, -1, -1, 1272, -1, -1, -1, 3205 -1, -1, -1, -1, 1280, 1281, 1282, 1493, 1494, -1, 3206 0, 1, -1, -1, -1, 32, 39, -1, -1, -1, 3207 -1, -1, -1, -1, 991, 586, -1, -1, -1, -1, 3208 261, 1092, 444, -1, -1, 266, 597, 72, -1, 74, 3209 75, 76, 32, -1, 67, -1, -1, -1, 83, 84, 3210 -1, -1, 1328, 70, 407, -1, -1, -1, 443, 94, 3211 50, -1, -1, 1124, -1, -1, 478, 628, -1, -1, 3212 -1, 94, 633, 723, 109, -1, 111, -1, 639, -1, 3213 70, -1, -1, 118, 119, -1, 109, 737, 111, -1, 3214 191, -1, -1, -1, -1, 118, 119, 198, 10, 11, 3215 12, 13, 14, 515, -1, -1, -1, 757, 520, -1, 3216 -1, 523, -1, -1, -1, -1, -1, 107, -1, -1, 3217 351, -1, -1, -1, -1, 1092, -1, 39, 72, -1, 3218 74, 75, 76, -1, 695, -1, -1, -1, 1199, 83, 3219 84, 158, -1, -1, -1, -1, -1, -1, -1, -1, 3220 94, -1, -1, -1, -1, 67, 717, -1, -1, 149, 3221 72, 1222, 74, 75, 76, 109, -1, 157, 158, 270, 3222 -1, 83, 84, -1, 118, 119, -1, -1, -1, -1, 3223 830, -1, 94, -1, -1, -1, 747, -1, -1, -1, 3224 -1, -1, -1, -1, -1, -1, -1, 109, 188, 111, 3225 -1, 432, -1, 1264, 1265, 1266, 118, 119, -1, -1, 3226 771, -1, -1, 203, -1, 232, 206, 207, -1, -1, 3227 -1, 211, -1, 324, -1, -1, -1, -1, -1, -1, 3228 -1, 332, 1199, -1, 335, -1, 253, -1, 982, -1, 3229 -1, 258, 232, -1, -1, -1, 236, -1, 238, -1, 3230 -1, 482, -1, -1, -1, 999, -1, 247, 1002, -1, 3231 1004, 1322, -1, 253, -1, -1, 678, 828, 258, -1, 3232 -1, -1, 833, -1, -1, 687, -1, -1, 268, 691, 3233 -1, 72, -1, 74, 75, 76, 276, -1, -1, -1, 3234 -1, -1, 83, 84, -1, -1, -1, 72, 399, 74, 3235 75, 76, 403, 94, -1, -1, -1, -1, 83, 84, 3236 1054, -1, -1, -1, -1, -1, -1, -1, 109, 94, 3237 111, -1, 0, -1, -1, -1, -1, 118, 119, -1, 3238 -1, -1, -1, -1, 109, 352, -1, 1398, 1399, -1, 3239 -1, -1, -1, 118, 119, -1, -1, 1408, 1409, -1, 3240 -1, -1, 342, -1, 32, -1, 346, -1, -1, -1, 3241 -1, 922, 352, -1, -1, 926, -1, -1, -1, -1, 3242 -1, 602, -1, 1023, -1, 365, -1, -1, -1, 369, 3243 -1, -1, 372, -1, 945, -1, 1447, 488, -1, -1, 3244 -1, -1, 70, -1, -1, -1, -1, -1, -1, 630, 3245 -1, -1, 419, -1, 635, 966, 967, 968, -1, -1, 3246 -1, -1, -1, -1, -1, -1, -1, 434, -1, -1, 3247 -1, -1, 439, -1, -1, -1, -1, -1, -1, 419, 3248 447, 97, 98, 99, 100, 101, 102, 103, 104, 105, 3249 106, -1, -1, -1, 434, 1506, 1507, -1, -1, 439, 3250 -1, -1, -1, -1, -1, 1516, 473, 447, -1, 1020, 3251 -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, 3252 1531, 1532, -1, -1, 491, -1, 493, 578, 579, -1, 3253 158, -1, -1, 473, -1, -1, 476, -1, -1, -1, 3254 -1, -1, 723, -1, -1, 1556, -1, -1, -1, -1, 3255 -1, 491, -1, 493, -1, -1, 737, -1, -1, -1, 3256 -1, 501, 924, -1, -1, 505, -1, 534, -1, -1, 3257 1264, 1265, 1266, -1, -1, -1, -1, -1, -1, -1, 3258 -1, 10, 11, 12, 13, 14, 0, 1, -1, -1, 3259 1101, 1102, -1, 533, 534, -1, -1, -1, -1, -1, 3260 -1, -1, -1, 1203, -1, -1, -1, -1, -1, -1, 3261 39, -1, -1, -1, -1, 666, -1, -1, 32, 670, 3262 -1, -1, -1, -1, -1, 253, -1, -1, 1322, -1, 3263 258, 598, -1, -1, -1, -1, -1, -1, 67, 579, 3264 -1, -1, -1, 72, -1, 74, 75, 76, -1, 830, 3265 -1, -1, 703, 67, 83, 84, 70, 597, 598, -1, 3266 -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, 3267 610, -1, -1, -1, -1, 642, 643, 644, -1, -1, 3268 109, -1, 111, -1, -1, -1, -1, -1, 628, 118, 3269 119, -1, -1, 633, 661, -1, -1, -1, -1, 639, 3270 1300, -1, 642, 643, 644, -1, -1, -1, -1, -1, 3271 1072, 1222, 679, -1, 1408, 1409, -1, -1, -1, -1, 3272 -1, 661, -1, 690, 352, -1, -1, -1, -1, 696, 3273 -1, -1, -1, -1, -1, 1246, -1, -1, -1, 679, 3274 -1, -1, -1, -1, 158, -1, -1, -1, -1, -1, 3275 690, -1, -1, 1447, -1, 695, 696, -1, -1, 699, 3276 -1, -1, -1, -1, -1, 732, -1, 818, 735, -1, 3770 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3771 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3772 39, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3773 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3774 25, 26, 27, 28, -1, 30, 31, 32, 67, -1, 3775 69, -1, 71, -1, 39, 74, 75, -1, -1, -1, 3277 3776 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3278 -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 3279 -1, 419, 732, -1, -1, 735, 10, 11, 12, 13, 3280 14, -1, -1, -1, 744, 772, 434, 747, -1, 223, 3281 -1, 439, -1, 1507, -1, -1, -1, 32, -1, 447, 3282 -1, -1, 1516, -1, -1, 39, -1, -1, 1339, -1, 3283 -1, 771, 772, -1, -1, -1, -1, 777, -1, 253, 3284 -1, -1, 1023, -1, -1, 473, -1, 814, -1, -1, 3285 -1, -1, -1, 67, -1, 70, -1, 824, 72, 826, 3286 74, 75, 76, 491, 831, 493, -1, 834, -1, 83, 3287 84, 838, -1, -1, 814, -1, -1, -1, -1, 930, 3288 94, -1, -1, -1, 824, -1, 826, -1, 828, -1, 3289 -1, 831, -1, 833, 834, 109, -1, 111, 838, -1, 3290 -1, -1, -1, -1, 118, 119, 534, -1, 848, -1, 3777 -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, 3778 -1, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3779 75, 76, 111, 78, -1, -1, -1, -1, 83, 84, 3780 119, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3781 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3782 23, 24, 25, 26, 27, -1, 111, 30, 31, 32, 3783 -1, -1, -1, -1, 119, -1, 39, -1, -1, -1, 3291 3784 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3292 -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,3293 -1, 1442, -1, 900, -1, -1, -1, -1, -1, -1,3294 -1, -1, -1, 158, -1, -1, -1, -1, -1, -1,3295 -1, -1, 1314, -1, -1, -1, -1, 32, 1009, -1,3296 900, -1, -1, 1474, -1, 1476, -1, -1, -1, -1,3297 598, -1, -1, -1, -1, 1026, -1, -1, -1, -1,3298 -1, -1, 922, 10, 11, 12, 13, 14, -1, -1,3299 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1,3300 1511, -1, 1513, -1, -1, -1, -1, -1, -1, -1,3301 -1, -1, 39, -1, 642, 643, 644, 984, 958, -1,3302 434, -1, 1203, -1, -1, -1, 966, 967, -1, -1,3303 1541, -1, -1, 661, -1, -1, -1, -1, 253, -1,3304 67, -1, -1, 258, 984, 72, -1, 74, 75, 76,3305 -1, 679, 1103, -1, -1, -1, 83, 84, -1, -1,3306 -1, -1, 690, -1, -1, -1, -1, 94, 696, -1,3307 -1, 1038, 1039, -1, 1041, 1042, -1, -1, -1, 493,3308 1020, -1, 109, 158, -1, -1, -1, -1, -1, -1,3309 -1, 118, 119, 1033, 1061, -1, -1, -1, 1038, 1039,3310 -1, 1041, 1042, -1, 732, -1, -1, 735, -1, -1,3311 -1, 1473, -1, 1475, -1, -1, -1, -1, -1, 1300,3312 534, 1061, -1, -1, -1, -1, -1, -1, -1, 1096,3313 1097, -1, -1, -1, -1, -1, -1, 352, -1, -1,3314 -1, -1, -1, -1, 772, -1, -1, -1, 1510, -1,3315 1512, -1, -1, -1, -1, -1, 1096, 1097, -1, 26,3316 27, 28, 1102, -1, -1, -1, -1, -1, -1, -1,3317 -1, -1, -1, -1, -1, -1, -1, -1, 253, -1,3318 -1, -1, -1, 258, 598, -1, 814, -1, -1, -1,3319 -1, -1, -1, 1555, 1161, 1557, 824, -1, 826, -1,3320 -1, -1, -1, 831, 419, -1, 834, -1, 1570, 1571,3321 838, -1, -1, -1, -1, -1, -1, -1, -1, 434,3322 -1, 1161, -1, -1, 439, -1, -1, -1, 642, 643,3323 644, -1, 447, 100, -1, 102, -1, 1204, -1, -1,3324 -1, -1, -1, -1, -1, -1, -1, 661, -1, -1,3325 -1, -1, -1, -1, -1, -1, -1, -1, 473, 1226,3326 -1, -1, -1, -1, 1204, -1, -1, -1, -1, -1,3327 -1, -1, 900, 1240, -1, 1242, 491, 352, 493, -1,3328 -1, -1, 1222, -1, -1, -1, 1226, -1, -1, -1,3329 3785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3330 1240, -1, 1242, -1, -1, 1272, 1246, -1, -1, -1, 3331 -1, -1, -1, 1280, 1281, 1282, 183, -1, -1, 534, 3332 -1, 735, -1, -1, 1291, 1292, 193, 194, -1, -1, 3333 -1, 198, 1272, 200, 201, -1, -1, -1, 1305, -1, 3334 1280, 1281, 1282, -1, 419, -1, -1, -1, -1, -1, 3335 -1, 1291, 1292, -1, -1, -1, 984, -1, -1, 434, 3336 -1, 1328, -1, -1, 439, 1305, -1, -1, -1, -1, 3337 -1, -1, 447, -1, 10, 11, 12, 13, 14, -1, 3338 -1, -1, -1, 598, -1, -1, -1, -1, 1328, -1, 3339 -1, -1, -1, -1, -1, -1, -1, -1, 473, 1339, 3340 -1, -1, -1, 39, -1, 10, 11, 12, 13, 14, 3341 1038, 1039, 826, 1041, 1042, -1, 491, -1, 493, -1, 3342 834, -1, -1, -1, -1, -1, -1, 642, 643, 644, 3343 -1, 67, -1, 1061, 39, -1, 72, -1, 74, 75, 3344 76, -1, -1, -1, -1, -1, 661, 83, 84, 1416, 3345 -1, -1, -1, -1, -1, -1, -1, -1, 94, 534, 3346 -1, -1, 67, -1, 679, -1, -1, 72, 1096, 1097, 3347 -1, 76, -1, 109, -1, 690, 1416, -1, 83, 84, 3348 -1, 696, 118, 119, -1, -1, 900, -1, -1, 94, 3349 -1, -1, -1, -1, 54, -1, 56, -1, 1465, 59, 3350 60, 61, 1442, 63, 109, 1472, -1, -1, -1, -1, 3351 -1, -1, -1, 118, 119, -1, -1, 732, 78, -1, 3352 735, -1, -1, 598, -1, 1465, -1, -1, -1, -1, 3353 90, 91, 1472, 1161, 10, 11, 12, 13, 14, -1, 3786 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 3787 -1, 74, 75, -1, 4, 5, 6, 7, 8, 9, 3788 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3789 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3790 30, 31, 32, -1, -1, -1, -1, -1, 111, 39, 3791 -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, 3354 3792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3355 -1, -1, -1, 967, -1, -1, -1, 772, 1525, -1, 3356 -1, -1, -1, 39, -1, -1, -1, 642, 643, 644, 3357 984, -1, -1, -1, -1, -1, 1204, -1, 284, -1, 3358 286, 287, -1, -1, -1, 1525, 661, -1, 294, 295, 3359 -1, 67, 1532, -1, -1, -1, 72, -1, 1226, 814, 3360 76, -1, 308, 309, 679, -1, -1, 83, 84, 824, 3361 -1, 826, 1240, -1, 1242, 690, 831, -1, 94, 834, 3362 -1, 696, -1, 838, -1, -1, -1, 1041, 1042, -1, 3363 -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, 3364 346, -1, 118, 119, 1272, 37, 38, 1061, 40, -1, 3365 -1, -1, 1280, 1281, 1282, -1, -1, 732, -1, -1, 3366 735, -1, -1, 1291, 1292, -1, -1, -1, -1, -1, 3367 -1, -1, -1, -1, 66, -1, 382, 1305, -1, -1, 3368 72, -1, 74, 75, 76, 900, -1, 79, 80, 81, 3369 82, 83, 84, -1, 86, 87, -1, 772, -1, -1, 3370 1328, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3371 -1, -1, -1, -1, -1, 582, 583, 109, -1, 111, 3372 -1, 113, 114, -1, -1, -1, 118, 119, 120, 121, 3373 122, 123, -1, -1, -1, -1, -1, -1, -1, 814, 3374 -1, -1, -1, -1, 611, -1, -1, 614, 615, 824, 3375 617, 826, 619, 620, -1, -1, 831, 624, 625, 834, 3376 -1, -1, -1, 838, -1, -1, -1, -1, -1, 984, 3793 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3794 -1, 71, -1, -1, 74, 75, -1, 4, 5, 6, 3795 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3796 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3797 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3798 -1, 111, 39, -1, -1, -1, -1, -1, -1, 119, 3377 3799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3378 -1, -1, -1, -1, -1, 345, -1, 347, 1416, 1203,3379 1204, -1, -1, -1, -1, -1, -1, -1, 358, 359,3380 3800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3381 -1, -1, 1226, -1, -1, -1, -1, -1, -1, -1, 3382 -1, -1, -1, 1038, 1039, 900, 1041, 1042, -1, -1, 3383 -1, -1, 1246, -1, -1, -1, -1, 1465, -1, -1, 3384 -1, 708, 709, -1, 1472, -1, 1061, 714, -1, -1, 3385 -1, 557, 558, 559, 560, 561, 562, 563, 564, 565, 3386 566, 567, 568, 569, 570, 571, 572, 573, 574, -1, 3387 -1, 37, 38, -1, 40, -1, -1, 1291, 1292, -1, 3388 -1, 1096, 1097, -1, -1, -1, 1300, -1, -1, -1, 3389 -1, 1305, -1, -1, -1, -1, -1, 1525, -1, -1, 3390 66, -1, -1, -1, -1, -1, 72, -1, -1, 984, 3391 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3392 86, 87, -1, -1, -1, 1339, -1, -1, 94, -1, 3801 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3802 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3803 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3804 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3805 -1, -1, -1, -1, 111, 39, -1, -1, -1, -1, 3806 -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 3393 3807 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3394 -1, -1, -1, 109, -1, 111, 1161, -1, 114, -1, 3395 -1, -1, 118, 119, 120, 121, 122, 123, -1, -1, 3396 -1, -1, -1, 1038, 1039, -1, 1041, 1042, -1, -1, 3808 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3809 74, 75, 10, 11, 12, 13, 14, 15, 16, 17, 3810 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3811 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3812 38, 39, 40, -1, -1, -1, -1, 111, -1, -1, 3813 -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, 3814 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3815 -1, -1, -1, -1, 72, -1, 74, 75, 76, -1, 3816 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3817 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3397 3818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3398 -1, -1, -1, -1, -1, -1, 1061, -1, -1, 1204, 3399 -1, -1, 698, -1, -1, -1, -1, -1, -1, -1, 3400 -1, -1, 1416, -1, -1, -1, -1, -1, -1, -1, 3401 -1, 1226, -1, -1, 720, -1, -1, -1, -1, -1, 3402 -1, 1096, 1097, -1, -1, 1240, -1, 1242, 1442, -1, 3819 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 3820 118, 119, 120, 121, 122, 123, 10, 11, 12, 13, 3821 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3822 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3823 -1, -1, -1, 37, 38, 39, 40, 10, 11, 12, 3824 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3825 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3826 -1, -1, 66, 67, -1, -1, 39, -1, 72, -1, 3827 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3828 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3829 94, -1, -1, -1, 67, -1, -1, -1, -1, 72, 3830 -1, 74, 75, 76, -1, 109, -1, 111, 112, -1, 3831 83, 84, -1, -1, 118, 119, 120, 121, 122, 123, 3832 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3833 20, 21, 22, 23, 24, 25, 26, 27, 111, -1, 3834 30, 31, 32, -1, -1, -1, 119, 37, 38, 39, 3835 40, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3836 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3837 -1, 30, 31, 32, -1, -1, 66, 67, -1, -1, 3838 39, 40, 72, -1, 74, 75, 76, -1, -1, 79, 3839 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3840 -1, -1, -1, -1, 94, -1, -1, -1, 67, -1, 3841 -1, -1, -1, -1, -1, 74, 75, -1, -1, 109, 3842 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 3843 120, 121, 122, 123, 10, 11, 12, 13, 14, 15, 3844 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3845 26, 27, 111, -1, 30, 31, 32, -1, -1, -1, 3846 119, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3403 3847 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3404 3848 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3405 28, 1465, 30, 31, 32, -1, -1, 1272, 1472, -1, 3406 -1, 39, -1, -1, -1, 1280, 1281, 1282, -1, -1, 3407 -1, -1, -1, 779, -1, -1, 1291, 1292, -1, -1, 3408 -1, -1, -1, -1, -1, -1, 1161, -1, -1, 67, 3409 1305, -1, -1, -1, -1, -1, 74, 75, -1, -1, 3410 78, -1, -1, 37, 38, 811, 40, -1, -1, -1, 3411 -1, 1525, -1, 1328, -1, -1, 94, -1, -1, -1, 3412 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1204, 3413 -1, 109, 66, 111, -1, -1, -1, -1, 72, -1, 3414 118, 119, 76, -1, -1, 79, 80, 81, 82, 83, 3415 84, 1226, 86, 87, -1, -1, -1, -1, -1, -1, 3416 94, -1, -1, -1, 724, 1240, 726, 1242, -1, -1, 3417 -1, -1, -1, 733, 734, 109, -1, 111, 738, -1, 3418 -1, -1, -1, 117, 118, 119, 120, 121, 122, 123, 3419 750, -1, -1, -1, -1, 755, -1, 1272, -1, 37, 3420 38, 1416, 40, -1, -1, 1280, 1281, 1282, -1, -1, 3421 -1, -1, -1, -1, -1, -1, 1291, 1292, -1, -1, 3422 -1, 781, -1, -1, -1, -1, -1, -1, 66, -1, 3423 1305, 1098, -1, -1, 72, -1, -1, -1, 76, -1, 3849 66, 67, 30, 31, 32, -1, 72, -1, 74, 75, 3850 76, 39, -1, 79, 80, 81, 82, 83, 84, -1, 3851 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3852 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3853 -1, -1, -1, 109, -1, 111, 74, 75, -1, -1, 3854 -1, -1, 118, 119, 120, 121, 122, 123, 10, 11, 3855 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3856 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3857 32, 109, -1, 111, -1, 37, 38, 39, 40, -1, 3858 -1, 119, -1, -1, -1, -1, 10, 11, 12, 13, 3859 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3860 24, 25, 26, 27, 66, 67, 30, 31, 32, -1, 3861 72, -1, 74, 75, 76, 39, -1, 79, 80, 81, 3862 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3863 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3864 -1, -1, -1, 67, -1, -1, -1, 109, -1, 111, 3865 74, 75, -1, -1, -1, -1, 118, 119, 120, 121, 3866 122, 123, 10, 11, 12, 13, 14, 15, 16, 17, 3867 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3868 -1, -1, 30, 31, 32, 109, -1, 111, -1, 37, 3869 38, 39, 40, -1, -1, 119, -1, -1, -1, -1, 3870 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3871 20, 21, 22, 23, 24, 25, 26, 27, 66, 67, 3872 30, 31, 32, -1, 72, -1, 74, 75, 76, 39, 3424 3873 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3425 1465, -1, -1, 1328, -1, -1, 94, 1472, -1, -1, 3426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3427 976, 109, -1, 111, -1, -1, -1, -1, 116, 50, 3428 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3429 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3430 -1, 1007, -1, -1, -1, -1, -1, -1, -1, -1, 3431 1525, -1, -1, -1, 1020, -1, -1, 37, 38, -1, 3432 40, -1, 882, 883, 884, 885, -1, 887, -1, -1, 3433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3434 -1, 1416, -1, 903, 115, -1, 66, -1, 119, -1, 3435 -1, -1, 72, -1, 1221, 1061, 76, 917, -1, 79, 3436 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3437 -1, 67, -1, -1, 94, -1, -1, 148, -1, -1, 3438 -1, 77, -1, 79, -1, 81, -1, 158, -1, 109, 3439 1465, 162, 88, -1, -1, -1, 956, 1472, 118, 119, 3440 120, 121, 122, 123, -1, -1, -1, -1, -1, -1, 3441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3442 -1, -1, -1, 119, -1, 121, 122, 123, 1134, -1, 3443 -1, -1, -1, -1, -1, -1, 996, -1, -1, -1, 3444 211, -1, -1, 1003, -1, -1, -1, -1, 1008, -1, 3445 1525, -1, 223, 1013, -1, 1015, -1, -1, -1, 1019, 3446 -1, 1021, 1022, -1, -1, 1025, 162, -1, -1, -1, 3447 241, 242, -1, -1, 1034, -1, -1, -1, -1, -1, 3448 -1, -1, -1, -1, -1, -1, 1192, 1193, -1, -1, 3449 -1, -1, 1052, 1053, -1, 266, -1, -1, -1, -1, 3450 -1, -1, 273, -1, -1, -1, -1, -1, -1, -1, 3451 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1079, 3452 -1, -1, 1082, -1, -1, 296, -1, 223, -1, 225, 3453 226, 227, -1, -1, -1, -1, -1, 308, 26, 27, 3454 28, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3455 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3456 28, 1121, 30, 31, 32, 261, -1, 1127, 1128, -1, 3457 266, 39, -1, -1, -1, 346, -1, -1, -1, 1139, 3458 351, -1, -1, -1, 1144, 281, -1, 1147, -1, 1149, 3459 -1, -1, 1152, -1, -1, -1, -1, -1, -1, 67, 3460 -1, -1, -1, -1, 72, 1165, 74, 75, 76, -1, 3461 78, -1, 100, -1, 102, 83, 84, -1, 1178, -1, 3462 1180, 1181, 1182, 1183, -1, -1, 94, -1, -1, -1, 3463 -1, -1, -1, 329, -1, -1, 1196, -1, 1198, 127, 3464 -1, 109, 1202, 111, -1, -1, -1, -1, -1, -1, 3465 118, 119, -1, -1, -1, 351, 427, 428, -1, -1, 3466 356, 357, -1, 434, -1, -1, -1, -1, 364, -1, 3467 -1, 1231, 1232, -1, -1, -1, -1, -1, -1, -1, 3468 -1, -1, -1, -1, 455, -1, -1, 458, -1, -1, 3469 -1, -1, -1, -1, -1, 183, -1, 1403, -1, -1, 3470 -1, -1, -1, 191, -1, 193, 194, -1, -1, -1, 3471 198, 407, 200, 201, 1420, -1, -1, -1, -1, -1, 3472 491, -1, -1, 1283, 1284, -1, -1, -1, -1, 425, 3473 -1, -1, 503, 1293, 430, -1, 432, -1, -1, -1, 3474 -1, -1, -1, -1, 515, -1, 517, -1, -1, 520, 3475 -1, 522, 523, 449, -1, -1, 452, 453, -1, -1, 3476 -1, -1, -1, 534, -1, -1, -1, -1, -1, -1, 3477 -1, -1, 468, 7, -1, -1, 10, 11, 12, 13, 3478 14, -1, 270, -1, -1, 1345, 482, 1493, 1494, -1, 3479 -1, -1, -1, 489, -1, -1, -1, 1357, -1, 1359, 3480 1360, 1361, -1, 37, 38, 39, 40, -1, -1, -1, 3481 -1, 1371, -1, -1, -1, 586, 45, -1, -1, -1, 3482 1380, -1, -1, -1, -1, -1, -1, 598, -1, -1, 3483 -1, 602, 66, 67, -1, -1, 1396, -1, 72, -1, 3484 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3485 84, -1, 86, 87, -1, -1, -1, 628, -1, -1, 3486 94, -1, 633, -1, 93, -1, -1, -1, -1, -1, 3487 -1, 642, 643, 644, 103, 109, -1, 111, -1, -1, 3874 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3875 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3876 -1, 109, -1, 111, 74, 75, -1, -1, -1, -1, 3877 118, 119, 120, 121, 122, 123, 10, 11, 12, 13, 3878 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3879 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3880 -1, 111, -1, 37, 38, 39, 40, -1, -1, 119, 3881 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3882 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3883 26, 27, 66, 67, 30, 31, 32, -1, 72, -1, 3884 74, 75, 76, 39, -1, 79, 80, 81, 82, 83, 3885 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3886 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 -1, 67, -1, -1, -1, 109, -1, 111, 74, 75, 3488 3888 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3489 661, -1, 1452, 1453, -1, -1, -1, -1, -1, -1, 3490 -1, -1, -1, -1, -1, 1465, 602, -1, -1, -1, 3491 -1, -1, 1472, 37, 38, -1, 40, -1, -1, -1, 3492 -1, -1, -1, -1, -1, 696, -1, -1, -1, -1, 3493 159, -1, -1, -1, 630, -1, -1, -1, -1, 635, 3494 -1, -1, 66, -1, 173, 1505, 717, -1, 72, 1509, 3495 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3496 84, -1, 86, 87, 735, -1, 737, 196, -1, -1, 3497 94, -1, -1, -1, -1, -1, -1, -1, 1538, -1, 3498 1540, 210, -1, -1, -1, 109, -1, 111, -1, -1, 3499 219, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3500 229, 772, -1, -1, -1, -1, -1, -1, 1568, 1569, 3501 -1, -1, -1, -1, -1, -1, 1576, 1577, -1, -1, 3502 -1, -1, -1, -1, -1, 254, -1, 723, -1, -1, 3503 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3504 -1, 737, -1, 272, -1, -1, -1, -1, -1, 278, 3505 -1, 280, -1, -1, -1, 826, -1, -1, -1, 830, 3506 -1, 757, -1, 834, -1, -1, -1, -1, 297, -1, 3507 -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3508 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3509 24, 25, 26, 27, 582, 583, 30, 31, 32, -1, 3510 -1, -1, -1, -1, -1, 39, 40, -1, -1, -1, 3511 339, -1, -1, -1, -1, 344, -1, -1, -1, -1, 3512 -1, -1, 818, 611, -1, -1, 614, 615, -1, 617, 3513 -1, 619, 620, 67, 830, -1, 624, 625, -1, -1, 3514 74, 75, -1, -1, 373, -1, -1, -1, 377, 378, 3515 -1, 380, -1, 849, -1, 926, -1, -1, 387, 388, 3516 94, 390, 391, -1, 393, -1, 395, -1, -1, -1, 3517 -1, -1, -1, -1, 945, -1, -1, 111, -1, -1, 3518 -1, 115, -1, 412, 118, 119, -1, -1, -1, -1, 3519 -1, 420, -1, -1, -1, -1, -1, 968, -1, -1, 3520 -1, -1, -1, 7, -1, -1, 10, 11, 12, 13, 3521 14, -1, -1, 984, -1, 703, 445, -1, -1, -1, 3522 708, 709, -1, -1, -1, -1, 714, 456, -1, -1, 3523 -1, -1, -1, 37, 38, 39, 40, -1, -1, -1, 3524 936, -1, -1, -1, -1, -1, -1, -1, -1, 1020, 3525 479, -1, -1, -1, -1, -1, 485, -1, -1, -1, 3526 -1, 490, 66, 67, -1, -1, 962, -1, 72, -1, 3527 1041, 1042, 76, -1, -1, 79, 80, 81, 82, 83, 3528 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3529 94, -1, -1, -1, 990, -1, -1, 526, -1, -1, 3530 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3531 -1, 540, -1, -1, 118, 119, 120, 121, 122, 123, 3532 -1, -1, -1, -1, -1, -1, -1, 1023, -1, -1, 3533 1101, -1, -1, -1, -1, -1, -1, -1, 1034, -1, 3534 -1, -1, -1, -1, -1, -1, -1, -1, -1, 578, 3535 -1, -1, 37, 38, -1, 40, -1, -1, 587, 157, 3536 158, -1, -1, -1, -1, 594, -1, -1, -1, -1, 3537 -1, 600, -1, -1, -1, -1, -1, -1, -1, -1, 3538 609, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3539 1161, 76, -1, 191, 79, 80, 81, 82, 83, 84, 3540 198, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3542 1116, 650, -1, -1, 109, -1, 111, -1, -1, 114, 3543 -1, -1, 1203, 118, 119, 120, 121, 122, 123, -1, 3544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3545 -1, -1, -1, -1, -1, -1, -1, 686, -1, -1, 3546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3547 -1, 1242, 270, -1, -1, 3, 4, 5, 6, 7, 3548 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3549 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3550 28, -1, 30, 31, 32, 33, -1, 1203, 36, -1, 3551 -1, 39, 741, -1, -1, -1, -1, -1, -1, -1, 3552 1291, 1292, 751, 752, -1, -1, 324, -1, -1, 1300, 3553 -1, -1, -1, -1, 332, 333, 765, 335, 336, 67, 3554 -1, 69, -1, 71, -1, -1, 74, 75, 346, -1, 3555 78, -1, 350, 782, -1, 784, -1, -1, -1, 788, 3556 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3557 -1, 369, -1, -1, 372, -1, -1, -1, -1, -1, 3558 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3559 118, 119, -1, -1, -1, -1, -1, -1, -1, -1, 3560 -1, 399, -1, -1, 1300, 403, -1, -1, -1, -1, 3561 1098, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3562 -1, -1, -1, -1, 853, -1, -1, -1, -1, -1, 3563 -1, 860, -1, -1, -1, -1, 434, -1, -1, -1, 3564 -1, -1, -1, -1, 873, 1416, 875, -1, -1, -1, 3565 -1, -1, -1, -1, -1, -1, -1, -1, -1, 457, 3566 889, -1, -1, -1, -1, -1, -1, 896, -1, -1, 3567 -1, -1, -1, -1, -1, -1, 148, -1, -1, 908, 3568 -1, -1, 911, -1, -1, -1, 158, -1, -1, -1, 3569 488, -1, -1, 491, -1, -1, -1, -1, 170, 171, 3570 929, -1, -1, 1474, -1, 1476, -1, -1, 10, 11, 3571 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3572 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 3573 32, -1, 530, 1221, -1, 533, 534, 39, -1, -1, 3574 1511, -1, 1513, -1, -1, -1, 10, 11, 12, 13, 3575 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3576 24, 25, 26, 27, 28, 67, -1, -1, -1, 241, 3577 1541, -1, 74, 75, -1, 39, 78, -1, -1, -1, 3578 578, 579, -1, -1, -1, -1, -1, -1, -1, 1018, 3579 -1, -1, 94, 265, -1, -1, -1, -1, -1, 597, 3580 598, -1, -1, 67, -1, -1, -1, -1, -1, 111, 3581 608, -1, 610, 611, 78, -1, 118, 119, -1, 617, 3582 -1, -1, -1, -1, -1, -1, -1, -1, -1, 627, 3583 628, -1, -1, -1, -1, 633, -1, -1, -1, -1, 3584 -1, -1, -1, -1, 642, 643, 644, 1076, -1, -1, 3585 -1, -1, -1, 1082, -1, -1, -1, -1, -1, -1, 3586 1556, -1, -1, 661, -1, -1, -1, -1, 666, 667, 3587 -1, -1, 670, 671, -1, -1, -1, -1, -1, 677, 3588 -1, -1, -1, 1112, -1, -1, -1, -1, 1117, -1, 3589 -1, -1, -1, -1, -1, -1, 1125, 695, 696, 697, 3590 -1, 699, -1, -1, -1, 703, -1, -1, -1, 381, 3591 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3592 -1, -1, -1, -1, -1, -1, -1, 1156, -1, -1, 3593 -1, -1, -1, -1, -1, -1, -1, 735, 736, 1168, 3594 -1, -1, 1171, -1, 1173, -1, -1, -1, -1, -1, 3595 -1, -1, -1, -1, -1, -1, -1, -1, 1187, 1188, 3596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3597 -1, -1, -1, 771, 772, -1, -1, -1, 776, 777, 3598 1209, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3599 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3600 22, 23, 24, 25, 26, 27, -1, 1236, 30, 31, 3601 32, 483, -1, -1, -1, -1, -1, 39, -1, -1, 3602 818, -1, -1, -1, -1, -1, -1, -1, 826, -1, 3603 -1, -1, -1, -1, -1, 833, 834, -1, -1, 837, 3604 -1, 839, -1, -1, -1, 67, -1, 69, -1, 71, 3605 522, 849, 74, 75, -1, -1, -1, -1, -1, -1, 3606 -1, -1, 534, -1, -1, -1, -1, 539, -1, -1, 3607 542, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3608 -1, 553, 554, -1, -1, -1, -1, -1, -1, 111, 3609 -1, -1, -1, -1, -1, -1, 118, 119, -1, -1, 3610 -1, -1, -1, -1, 576, 1334, -1, 1336, -1, -1, 3611 -1, -1, -1, -1, 586, -1, -1, -1, -1, -1, 3612 1349, 593, 1351, -1, 922, -1, 598, -1, -1, -1, 3613 -1, -1, 930, -1, -1, -1, -1, -1, 936, -1, 3614 1369, -1, -1, -1, -1, -1, 944, -1, -1, -1, 3615 -1, -1, -1, -1, -1, -1, 1385, 1386, -1, 957, 3616 958, -1, -1, -1, -1, -1, -1, -1, 1397, -1, 3617 -1, 1400, -1, -1, -1, 647, -1, -1, -1, -1, 3618 -1, -1, -1, -1, 656, -1, 984, -1, -1, -1, 3619 -1, -1, 990, 1422, -1, -1, -1, -1, -1, -1, 3620 -1, -1, 1431, -1, -1, 1434, -1, 1436, 1437, 1438, 3621 -1, 1009, 1010, 37, 38, -1, 40, -1, -1, -1, 3622 -1, -1, 1020, -1, 696, -1, -1, -1, 1026, 1027, 3623 -1, 1029, 1030, 1031, -1, -1, -1, -1, -1, -1, 3624 -1, -1, 66, 1041, 1042, -1, -1, -1, 72, 1478, 3625 -1, 1480, 76, -1, 1483, 79, 80, 81, 82, 83, 3626 84, -1, 86, 87, -1, -1, -1, -1, -1, 1498, 3627 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3628 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3629 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3630 772, -1, 774, -1, 1102, 1103, 1104, -1, 780, -1, 3631 -1, -1, -1, -1, -1, 787, -1, -1, 1116, 3, 3632 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3633 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3634 24, 25, 26, 27, -1, -1, 30, 31, 32, 33, 3635 -1, -1, 36, 37, 38, 39, 40, -1, 830, 831, 3636 -1, -1, 834, 1161, -1, -1, -1, -1, -1, -1, 3637 -1, -1, -1, -1, -1, -1, 848, -1, -1, -1, 3638 -1, -1, 66, 67, -1, 69, -1, 71, 72, -1, 3639 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3640 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3641 94, -1, -1, -1, -1, -1, 888, -1, -1, -1, 3642 892, -1, -1, -1, 1222, 109, -1, 111, -1, -1, 3643 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3644 -1, -1, -1, -1, 1242, -1, -1, -1, 132, -1, 3645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3646 -1, -1, -1, -1, 4, 5, 6, 7, 8, 9, 3889 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3890 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3891 23, 24, 25, 26, 27, 111, -1, 30, 31, 32, 3892 -1, -1, -1, 119, -1, -1, 39, -1, -1, -1, 3647 3893 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3648 3894 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3649 30, 31, 32, 1291, 1292, -1, 968, 37, 38, 39, 3650 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3651 -1, -1, 984, 985, -1, -1, -1, -1, -1, 991, 3652 -1, -1, -1, -1, -1, 997, 66, 67, 1000, 69, 3653 1002, 71, 72, -1, 74, 75, 76, -1, -1, 79, 3654 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3655 -1, 1023, -1, -1, 94, -1, -1, -1, -1, -1, 3656 -1, -1, 1034, -1, -1, -1, -1, -1, -1, 109, 3657 -1, 111, -1, -1, -1, -1, 116, -1, 118, 119, 3658 120, 121, 122, 123, 1056, -1, 1058, -1, -1, -1, 3895 30, 31, 32, -1, 67, -1, 69, -1, 71, 39, 3896 -1, 74, 75, -1, -1, -1, -1, -1, 10, 11, 3897 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3898 22, 23, 24, 25, 26, 27, -1, 67, 30, 31, 3899 32, -1, 72, -1, 74, 75, 76, 39, -1, -1, 3900 -1, 114, -1, 83, 84, -1, 10, 11, 12, 13, 3901 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3902 24, 25, 26, 27, -1, 67, 30, 31, 32, 109, 3903 72, 111, 74, 75, 76, 39, -1, -1, -1, 119, 3904 -1, 83, 84, -1, 10, 11, 12, 13, 14, 15, 3905 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3906 26, 27, -1, 67, 30, 31, 32, 109, 72, 111, 3907 74, 75, 76, 39, -1, -1, -1, 119, -1, 83, 3908 84, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3909 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3910 28, 67, 30, 31, 32, 109, 72, 111, 74, 75, 3911 76, 39, -1, -1, -1, 119, -1, 83, 84, -1, 3659 3912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3660 -1, 1073, 1074, -1, -1, -1, -1, -1, -1, -1, 3661 -1, -1, -1, -1, -1, -1, -1, -1, 1416, -1, 3662 -1, -1, 1094, -1, -1, -1, 0, -1, -1, 3, 3663 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3913 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3914 -1, -1, -1, 109, -1, 111, 74, 75, -1, -1, 3915 78, -1, -1, 119, -1, 10, 11, 12, 13, 14, 3916 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3917 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3918 -1, 109, -1, 111, 39, 40, -1, -1, -1, -1, 3919 -1, 119, -1, 10, 11, 12, 13, 14, 15, 16, 3920 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3921 27, 28, 67, 30, 31, 32, -1, -1, -1, 74, 3922 75, -1, 39, 10, 11, 12, 13, 14, 15, 16, 3923 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3924 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3925 67, -1, 39, 40, -1, -1, 111, 74, 75, -1, 3926 115, 78, -1, -1, 119, -1, -1, -1, -1, -1, 3927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3928 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3929 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3930 -1, -1, 119, -1, -1, 10, 11, 12, 13, 14, 3931 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3932 25, 26, 27, -1, 111, 30, 31, 32, 115, -1, 3933 -1, -1, 119, -1, 39, 40, 10, 11, 12, 13, 3664 3934 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3665 24, 25, 26, 27, -1, -1, 30, 31, 32, 33, 3666 -1, -1, 36, -1, -1, 39, 40, -1, -1, -1, 3667 1142, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3668 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1161, 3669 64, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3670 74, 75, 76, -1, 1176, 1177, -1, -1, 1506, 83, 3671 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3672 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3673 -1, -1, -1, 1531, 1532, 109, -1, 111, -1, -1, 3674 -1, -1, -1, -1, 118, 119, -1, -1, -1, -1, 3675 -1, -1, -1, -1, -1, -1, -1, -1, 1556, -1, 3676 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3677 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3678 23, 24, 25, 26, 27, -1, 1258, 30, 31, 32, 3679 33, -1, -1, 36, 37, 38, 39, 40, 41, -1, 3680 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 3681 53, -1, -1, -1, 57, -1, -1, -1, 61, 62, 3682 -1, 64, -1, 66, 67, -1, 69, -1, 71, 72, 3683 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3684 83, 84, -1, 86, 87, -1, -1, 1319, -1, -1, 3685 1322, 94, -1, -1, -1, -1, -1, -1, -1, -1, 3686 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3687 -1, 114, -1, -1, -1, 118, 119, 120, 121, 122, 3688 123, -1, -1, -1, -1, 128, -1, -1, -1, 132, 3689 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3935 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3936 -1, -1, 67, -1, -1, 39, -1, -1, -1, 74, 3937 75, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3938 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3939 26, 27, -1, 67, 30, 31, 32, -1, -1, -1, 3940 74, 75, -1, 39, -1, -1, 111, -1, -1, -1, 3941 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, 3942 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3943 -1, 67, -1, -1, -1, -1, -1, 111, 74, 75, 3944 -1, -1, -1, -1, -1, 119, -1, 10, 11, 12, 3690 3945 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3691 3946 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3692 33, -1, -1, 36, 37, 38, 39, 40, -1, -1, 3693 -1, -1, -1, -1, -1, 1407, -1, -1, -1, -1, 3947 -1, -1, -1, -1, -1, 111, 39, -1, -1, -1, 3948 -1, -1, -1, 119, -1, 10, 11, 12, 13, 14, 3949 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3950 25, 26, 27, -1, 67, 30, 31, 32, -1, -1, 3951 -1, 74, 75, -1, 39, 10, 11, 12, 13, 14, 3952 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3953 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3954 -1, -1, 67, -1, 39, -1, -1, -1, 111, 74, 3955 75, -1, -1, -1, -1, -1, 119, -1, -1, -1, 3694 3956 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3695 -1, -1, -1, 66, 67, -1, 69, -1, 71, 72, 3696 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3957 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3958 75, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3959 -1, -1, -1, -1, 119, -1, -1, 10, 11, 12, 3960 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3961 23, 24, 25, 26, 27, -1, 111, 30, 31, 32, 3962 -1, -1, -1, -1, 119, -1, 39, 10, 11, 12, 3963 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3964 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3965 -1, -1, -1, -1, 67, -1, 39, -1, -1, -1, 3966 -1, 74, 75, -1, -1, 10, 11, 12, 13, 14, 3967 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3968 25, 26, 27, -1, 67, 30, 31, 32, -1, -1, 3969 -1, 74, 75, -1, 39, -1, -1, -1, 111, -1, 3970 -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, 3971 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3972 -1, -1, 67, -1, -1, -1, -1, -1, 111, 74, 3973 75, -1, -1, -1, -1, -1, 119, 4, 5, 6, 3974 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3975 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3976 27, -1, -1, 30, 31, 32, 111, -1, -1, -1, 3977 -1, -1, 39, -1, 119, -1, -1, -1, -1, -1, 3978 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3979 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3980 67, -1, 69, -1, 71, -1, -1, 74, 75, 37, 3981 38, -1, 40, 41, -1, 43, -1, -1, 46, 47, 3982 48, 49, 50, 51, 52, 53, -1, -1, 56, 57, 3983 -1, -1, -1, 61, 62, -1, 64, -1, 66, -1, 3984 -1, -1, -1, 110, 72, -1, -1, -1, 76, -1, 3985 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3986 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3987 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3988 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 3989 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3990 128, -1, 37, 38, 132, 40, 41, -1, 43, -1, 3991 -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3992 -1, -1, 57, -1, -1, -1, 61, 62, -1, 64, 3993 -1, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3994 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3995 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3996 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3997 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3998 -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, 3999 -1, -1, -1, 128, -1, -1, -1, 132, 4, 5, 4000 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4001 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4002 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4003 -1, -1, -1, 39, -1, 37, 38, -1, 40, 41, 4004 -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 4005 52, 53, -1, -1, 56, 57, -1, -1, -1, 61, 4006 62, 67, 64, 69, 66, 71, -1, -1, 74, 75, 4007 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 4008 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 4009 96, -1, 94, -1, -1, -1, -1, -1, -1, -1, 4010 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 4011 -1, -1, 114, -1, -1, -1, 118, 119, 120, 121, 4012 122, 123, -1, -1, 37, 38, 128, 40, 41, -1, 4013 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 4014 53, -1, -1, -1, 57, -1, -1, -1, 61, 62, 4015 -1, 64, -1, 66, -1, -1, -1, -1, -1, 72, 4016 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3697 4017 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3698 4018 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 3699 4019 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3700 -1, -1, -1, -1, -1, 118, 119, 120, 121, 122, 3701 123, -1, -1, -1, -1, -1, -1, 1489, 4, 5, 3702 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3703 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3704 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3705 -1, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3706 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1541, 3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3708 66, 67, -1, 69, -1, 71, 72, -1, 74, 75, 4020 -1, 114, -1, -1, -1, 118, 119, 120, 121, 122, 4021 123, -1, -1, 37, 38, 128, 40, 41, -1, 43, 4022 -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 4023 -1, -1, -1, 57, -1, -1, -1, 61, 62, -1, 4024 64, -1, 66, -1, -1, -1, -1, -1, 72, -1, 4025 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 4026 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 4027 94, 37, 38, -1, 40, -1, -1, -1, -1, -1, 4028 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 4029 114, -1, -1, -1, 118, 119, 120, 121, 122, 123, 4030 66, -1, -1, -1, 128, -1, 72, -1, -1, -1, 3709 4031 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3710 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3712 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3713 116, -1, 118, 119, 120, 121, 122, 123, 4, 5, 3714 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3715 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3716 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3717 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3718 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3719 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3720 66, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3721 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3722 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3723 -1, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3724 75, -1, -1, 109, -1, 111, -1, -1, 83, 84, 3725 116, -1, 118, 119, 120, 121, 122, 123, 4, 5, 3726 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3727 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3728 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3729 -1, 37, 38, 39, 40, -1, -1, -1, 10, 11, 3730 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3731 22, 23, 24, 25, 26, 27, 28, -1, -1, -1, 3732 66, 67, -1, 69, -1, 71, 72, 39, 74, 75, 3733 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3734 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3735 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3736 -1, -1, -1, 109, -1, 111, 78, -1, -1, -1, 3737 -1, -1, 118, 119, 120, 121, 122, 123, 4, 5, 3738 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3739 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3740 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3741 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3742 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3743 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3744 66, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3745 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3746 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3747 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3748 75, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3749 -1, -1, 118, 119, 120, 121, 122, 123, 4, 5, 3750 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3751 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3752 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3753 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3754 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3755 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3756 66, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3757 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3758 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3759 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3760 75, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3761 -1, -1, 118, 119, 120, 121, 122, 123, 4, 5, 3762 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3763 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3764 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3765 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3766 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3767 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, 3768 66, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3769 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3770 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3771 -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 3772 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3773 -1, -1, 118, 119, 120, 121, 122, 123, 3, 4, 3774 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3775 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3776 25, 26, 27, -1, -1, 30, 31, 32, 33, -1, 3777 -1, 36, -1, -1, 39, 40, -1, -1, -1, -1, 3778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3779 -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 3780 -1, -1, 67, -1, 69, -1, 71, 72, -1, 74, 3781 75, 76, -1, -1, -1, -1, -1, -1, 83, 84, 3782 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, 3783 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3784 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3785 115, -1, -1, 118, 119, 3, 4, 5, 6, 7, 3786 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3787 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3788 -1, -1, 30, 31, 32, 33, -1, -1, 36, -1, 3789 -1, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3790 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3791 -1, -1, -1, -1, -1, -1, 64, -1, -1, 67, 3792 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3793 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 3794 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3796 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3797 118, 119, 3, 4, 5, 6, 7, 8, 9, 10, 3798 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3799 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3800 31, 32, -1, -1, -1, -1, -1, -1, 39, -1, 3801 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3802 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3803 30, 31, 32, 33, 34, 35, 67, -1, 69, 39, 3804 71, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3805 -1, -1, 83, 84, -1, -1, -1, -1, -1, -1, 3806 -1, -1, -1, 94, -1, -1, -1, 67, -1, -1, 3807 -1, -1, -1, -1, 74, 75, -1, -1, 109, -1, 3808 111, -1, -1, -1, -1, -1, -1, 118, 119, 3, 4032 86, 87, -1, -1, -1, -1, -1, -1, 94, 37, 4033 38, -1, 40, -1, -1, -1, -1, -1, -1, -1, 4034 -1, -1, -1, 109, -1, 111, -1, -1, 37, 38, 4035 -1, 40, 118, 119, 120, 121, 122, 123, 66, -1, 4036 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 4037 -1, 79, 80, 81, 82, 83, 84, 66, 86, 87, 4038 -1, -1, -1, 72, -1, -1, 94, 76, -1, -1, 4039 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 4040 -1, 109, -1, 111, -1, 94, 37, 38, -1, 40, 4041 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 4042 109, -1, -1, -1, -1, 37, 38, -1, 40, 118, 4043 119, 120, 121, 122, 123, 66, -1, -1, -1, -1, 4044 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 4045 81, 82, 83, 84, 66, 86, 87, -1, -1, -1, 4046 72, -1, -1, 94, 76, -1, -1, 79, 80, 81, 4047 82, 83, 84, -1, 86, 87, -1, -1, 109, -1, 4048 -1, -1, 94, 37, 38, -1, 40, 118, 119, 120, 4049 121, 122, 123, -1, -1, -1, -1, 109, -1, -1, 4050 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 4051 122, 123, 66, -1, -1, -1, -1, -1, 72, -1, 4052 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 4053 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 4054 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4055 -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, 4056 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3809 4057 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3810 4058 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3811 24, 25, 26, 27, -1, -1, 30, 31, 32, 33,3812 -1, -1, 36, -1, -1, 39, -1, -1, -1, -1,4059 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 4060 -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, 3813 4061 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3814 4062 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3815 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3816 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, 3817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3818 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3819 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 3820 -1, -1, -1, -1, 118, 119, 4, 5, 6, 7, 3821 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3822 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3823 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3824 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 3825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3826 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3827 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3828 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 3829 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3830 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3831 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3832 118, 119, 4, 5, 6, 7, 8, 9, 10, 11, 4063 -1, -1, -1, 67, -1, 69, -1, 71, 72, -1, 4064 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 4065 84, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3833 4066 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3834 4067 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, … … 3837 4070 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3838 4071 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3839 -1, -1, 74, 75, -1, -1, -1, -1, -1, -1, 3840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3841 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3842 -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 3843 -1, -1, -1, -1, -1, -1, 118, 119, 4, 5, 3844 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3845 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3846 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3847 -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, 3848 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3849 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3850 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3851 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3852 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 3853 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3854 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3855 -1, -1, 118, 119, 4, 5, 6, 7, 8, 9, 3856 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3857 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3858 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3861 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3862 -1, 71, -1, -1, 74, 75, -1, -1, -1, -1, 3863 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3864 -1, -1, -1, -1, 94, -1, 96, -1, -1, -1, 3865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3866 -1, 111, -1, -1, -1, -1, -1, -1, 118, 119, 3867 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3868 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3869 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3870 -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, 3871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3872 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3873 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3874 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, 3875 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3876 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3877 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 3878 -1, -1, -1, -1, 118, 119, 4, 5, 6, 7, 3879 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3880 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3881 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3882 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 3883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3884 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3885 -1, 69, -1, 71, -1, -1, 74, 75, -1, -1, 3886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3888 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3889 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3890 118, 119, 4, 5, 6, 7, 8, 9, 10, 11, 3891 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3892 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3893 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 3894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3896 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3897 -1, -1, 74, 75, -1, -1, -1, -1, -1, -1, 3898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3899 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3900 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 3901 -1, -1, -1, -1, -1, -1, 118, 119, 4, 5, 3902 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3903 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3904 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3905 -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, 3906 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3907 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3908 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3909 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3910 20, 21, 22, 23, 24, 25, 26, 27, 94, -1, 3911 30, 31, 32, -1, -1, -1, -1, 37, 38, 39, 3912 40, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3913 -1, -1, 118, 119, -1, -1, -1, -1, -1, -1, 3914 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, 3915 -1, -1, 72, -1, 74, 75, 76, -1, -1, 79, 3916 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3917 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, 3918 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3919 -1, 111, -1, -1, 114, -1, -1, -1, 118, 119, 3920 120, 121, 122, 123, 10, 11, 12, 13, 14, 15, 3921 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3922 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3923 -1, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3924 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3926 66, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3927 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3928 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3929 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3930 -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, 3931 -1, -1, 118, 119, 120, 121, 122, 123, 10, 11, 3932 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3933 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3934 32, -1, -1, -1, -1, 37, 38, 39, 40, -1, 3935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3936 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3937 -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 3938 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3939 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3940 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3941 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3942 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 3943 122, 123, 10, 11, 12, 13, 14, 15, 16, 17, 3944 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3945 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3946 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3948 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3949 -1, -1, -1, -1, 72, -1, 74, 75, 76, -1, 3950 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3951 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3952 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3953 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3954 118, 119, 120, 121, 122, 123, 10, 11, 12, 13, 3955 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3956 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3957 -1, -1, -1, 37, 38, 39, 40, -1, -1, -1, 3958 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3959 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3960 -1, -1, 66, 67, -1, -1, -1, -1, 72, -1, 3961 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3962 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3963 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3964 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3965 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3966 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3967 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3968 30, 31, 32, -1, -1, -1, -1, 37, 38, 39, 3969 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3970 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3971 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, 3972 -1, -1, 72, -1, 74, 75, 76, -1, -1, 79, 3973 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3974 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, 3975 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3976 -1, 111, -1, -1, -1, -1, -1, -1, 118, 119, 3977 120, 121, 122, 123, 3, 4, 5, 6, 7, 8, 4072 -1, -1, 74, 75, 3, 4, 5, 6, 7, 8, 3978 4073 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3979 4074 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3980 4075 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3981 39, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3982 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3983 26, 27, 28, -1, 30, 31, 32, -1, 67, -1, 3984 69, -1, 71, 39, -1, 74, 75, -1, -1, -1, 3985 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3986 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3987 -1, 67, 30, 31, 32, -1, 72, -1, 74, 75, 3988 76, 39, 78, -1, -1, 114, -1, 83, 84, -1, 3989 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 3990 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3991 -1, -1, -1, -1, 72, 111, 74, 75, 76, -1, 3992 -1, -1, 118, 119, -1, 83, 84, -1, -1, -1, 3993 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 4076 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3994 4077 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3995 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3996 118, 119, 10, 11, 12, 13, 14, 15, 16, 17, 3997 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3998 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3999 -1, 39, 10, 11, 12, 13, 14, 15, 16, 17, 4000 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4001 -1, -1, 30, 31, 32, -1, -1, -1, -1, 67, 4002 -1, 39, -1, -1, 72, -1, 74, 75, 76, -1, 4003 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 4004 -1, -1, -1, -1, -1, -1, 94, -1, -1, 67, 4005 -1, -1, -1, -1, 72, -1, 74, 75, 76, -1, 4006 -1, 109, -1, 111, -1, 83, 84, -1, -1, -1, 4007 118, 119, -1, -1, -1, -1, 94, -1, -1, -1, 4008 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4009 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 4010 118, 119, 10, 11, 12, 13, 14, 15, 16, 17, 4011 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4012 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 4013 -1, 39, 10, 11, 12, 13, 14, 15, 16, 17, 4014 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4015 -1, -1, 30, 31, 32, -1, -1, -1, -1, 67, 4016 -1, 39, -1, -1, 72, -1, 74, 75, 76, -1, 4017 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 4018 -1, -1, -1, -1, -1, -1, 94, -1, -1, 67, 4019 -1, -1, -1, -1, 72, -1, 74, 75, 76, -1, 4020 -1, 109, -1, 111, -1, 83, 84, -1, -1, -1, 4021 118, 119, -1, -1, -1, -1, 94, -1, -1, -1, 4022 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4023 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 4024 118, 119, 10, 11, 12, 13, 14, 15, 16, 17, 4025 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4026 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 4027 -1, 39, 10, 11, 12, 13, 14, 15, 16, 17, 4028 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4029 -1, -1, 30, 31, 32, -1, -1, -1, -1, 67, 4030 -1, 39, 40, -1, 72, -1, 74, 75, -1, -1, 4031 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 4032 -1, -1, -1, -1, -1, -1, 94, -1, -1, 67, 4033 -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, 4034 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 4035 118, 119, -1, -1, -1, -1, 94, -1, -1, -1, 4036 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4037 -1, -1, -1, 111, -1, -1, -1, 115, -1, -1, 4038 118, 119, 10, 11, 12, 13, 14, 15, 16, 17, 4039 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4040 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 4041 -1, 39, 40, 10, 11, 12, 13, 14, 15, 16, 4042 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4043 27, -1, -1, 30, 31, 32, -1, -1, -1, 67, 4044 -1, -1, 39, 40, -1, -1, 74, 75, -1, -1, 4045 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4046 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 4047 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4048 -1, -1, -1, 111, -1, -1, -1, 115, -1, -1, 4049 118, 119, -1, -1, -1, -1, -1, 94, -1, -1, 4050 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4051 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4052 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4078 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 4079 69, -1, 71, -1, -1, 74, 75, 4, 5, 6, 4080 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 4053 4081 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4054 4082 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4055 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4056 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4057 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4058 67, -1, 39, -1, -1, -1, -1, 74, 75, -1, 4059 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4060 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4061 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4062 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 4063 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4065 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4066 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4067 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4068 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4069 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4070 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4071 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4072 67, -1, 39, -1, -1, -1, -1, 74, 75, -1, 4073 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4074 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4075 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4076 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4077 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4078 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4079 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4080 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4081 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4082 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4083 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4084 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4085 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4086 67, -1, 39, -1, -1, -1, -1, 74, 75, -1, 4087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4088 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4089 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4090 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4091 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4093 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4094 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4095 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4096 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4097 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4098 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4099 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4100 67, -1, 39, -1, -1, -1, -1, 74, 75, -1, 4101 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4102 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4103 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4104 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4105 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4107 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4108 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4109 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4110 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4111 -1, -1, 39, -1, -1, 4, 5, 6, 7, 8, 4112 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4113 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 4114 67, 30, 31, 32, -1, -1, -1, 74, 75, -1, 4115 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4116 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4117 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 4118 69, -1, 71, -1, -1, 74, 75, -1, -1, -1, 4119 -1, 118, 119, 37, 38, -1, 40, 41, -1, 43, 4120 -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 4121 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1, 4122 64, 110, 66, -1, -1, -1, -1, -1, 72, -1, 4123 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 4124 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 4125 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4126 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 4127 114, -1, -1, -1, 118, 119, 120, 121, 122, 123, 4128 -1, -1, -1, -1, 128, -1, 37, 38, 132, 40, 4129 41, -1, 43, -1, -1, 46, 47, 48, 49, 50, 4130 51, 52, 53, -1, -1, -1, 57, -1, -1, -1, 4131 61, 62, -1, 64, -1, 66, -1, -1, -1, -1, 4132 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 4133 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 4134 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 4135 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 4136 111, -1, -1, 114, -1, -1, -1, 118, 119, 120, 4137 121, 122, 123, -1, -1, -1, -1, 128, -1, -1, 4138 -1, 132, 4, 5, 6, 7, 8, 9, 10, 11, 4139 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4140 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 4141 32, -1, -1, -1, -1, -1, -1, 39, -1, 37, 4142 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, 4143 48, 49, 50, 51, 52, 53, -1, -1, 56, 57, 4144 -1, -1, -1, 61, 62, 67, 64, 69, 66, 71, 4145 -1, -1, 74, 75, 72, -1, -1, -1, 76, -1, 4146 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 4147 -1, -1, -1, -1, 96, -1, 94, -1, -1, -1, 4148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4149 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 4150 118, 119, 120, 121, 122, 123, -1, -1, 37, 38, 4151 128, 40, 41, -1, 43, 44, 45, 46, 47, 48, 4152 49, 50, 51, 52, 53, -1, -1, -1, 57, -1, 4153 -1, -1, 61, 62, -1, 64, -1, 66, -1, -1, 4154 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 4155 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 4156 -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, 4157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4158 109, -1, 111, -1, -1, 114, -1, -1, -1, 118, 4159 119, 120, 121, 122, 123, -1, -1, 37, 38, 128, 4160 40, 41, -1, 43, -1, -1, 46, 47, 48, 49, 4161 50, 51, 52, 53, -1, -1, -1, 57, -1, -1, 4162 -1, 61, 62, -1, 64, -1, 66, -1, -1, -1, 4163 -1, -1, 72, -1, -1, -1, 76, -1, -1, 79, 4164 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 4165 -1, -1, -1, -1, 94, 37, 38, -1, 40, -1, 4166 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 4167 -1, 111, -1, -1, 114, -1, -1, -1, 118, 119, 4168 120, 121, 122, 123, 66, -1, -1, -1, 128, -1, 4169 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 4170 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 4171 -1, -1, 94, 37, 38, -1, 40, -1, -1, -1, 4172 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 4173 -1, -1, 37, 38, -1, 40, 118, 119, 120, 121, 4174 122, 123, 66, -1, -1, -1, -1, -1, 72, -1, 4175 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 4176 84, 66, 86, 87, -1, -1, -1, 72, -1, -1, 4177 94, 76, -1, -1, 79, 80, 81, 82, 83, 84, 4178 -1, 86, 87, -1, -1, 109, -1, 111, -1, 94, 4179 37, 38, -1, 40, 118, 119, 120, 121, 122, 123, 4180 -1, -1, -1, -1, 109, -1, -1, -1, -1, 37, 4181 38, -1, 40, 118, 119, 120, 121, 122, 123, 66, 4182 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, 4183 -1, -1, 79, 80, 81, 82, 83, 84, 66, 86, 4184 87, -1, -1, -1, 72, -1, -1, 94, 76, -1, 4185 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 4186 -1, -1, 109, -1, -1, -1, 94, -1, -1, -1, 4187 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 4188 -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, 4189 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 4190 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 4191 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 4192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4193 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 4194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4195 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 4196 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 4197 -1, -1, -1, -1, -1, 83, 84, 3, 4, 5, 4198 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4083 -1, -1, 39, -1, 10, 11, 12, 13, 14, 15, 4199 4084 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4200 26, 27, -1, -1, 30, 31, 32, -1, -1, -1,4201 -1, -1, -1, 39, -1, -1, -1, -1, -1, -1,4085 26, 27, -1, -1, 30, 31, 32, 33, 34, 35, 4086 67, -1, 69, 39, 71, -1, -1, 74, 75, -1, 4202 4087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4203 4088 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4204 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 4205 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 4206 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 4207 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 4208 -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, 4209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4210 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4211 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 4212 -1, 74, 75, 4, 5, 6, 7, 8, 9, 10, 4213 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 4214 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 4215 31, 32, -1, -1, -1, -1, -1, -1, 39, -1, 4216 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4217 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4218 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 4219 71, -1, -1, 74, 75 4089 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75 4220 4090 }; 4221 4091 … … 4228 4098 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 4229 4099 36, 39, 40, 64, 67, 69, 71, 72, 74, 75, 4230 76, 83, 84, 94, 109, 111, 118, 119, 137, 140,4231 149, 198, 212, 213, 214, 215, 216, 217, 218, 219,4232 22 0, 221, 222, 223, 224, 225, 226, 227, 228, 229,4233 23 1, 232, 233, 234, 235, 236, 237, 238, 240, 241,4234 24 2, 243, 244, 245, 247, 255, 256, 283, 284, 285,4235 293, 296, 302, 303, 305, 307, 308, 314, 319, 323,4236 32 4, 325, 326, 327, 328, 329, 330, 350, 367, 368,4237 369, 370, 72, 139, 140, 149, 215, 217, 225, 227,4238 2 37, 241, 243, 284, 82, 109, 312, 313, 314, 312,4239 312, 72, 74, 75, 76, 138, 139, 273, 274, 294,4240 2 95, 74, 75, 274, 109, 305, 11, 199, 109, 149,4241 3 19, 324, 325, 326, 328, 329, 330, 112, 134, 111,4242 218, 225, 227, 323, 327, 366, 367, 370, 371, 135,4243 1 07, 131, 277, 114, 135, 173, 74, 75, 137, 272,4244 1 35, 135, 135, 116, 135, 74, 75, 109, 149, 309,4245 3 18, 319, 320, 321, 322, 323, 327, 331, 332, 333,4246 334, 335, 341, 3, 28, 78, 239, 3, 5, 74,4247 111, 149, 217, 228, 232, 235, 244, 285, 323, 327,4248 370, 215, 217, 227, 237, 241, 243, 284, 323, 327,4249 33, 233, 233, 228, 235, 135, 233, 228, 233, 228,4250 75, 109, 114, 274, 285, 114, 274, 233, 228, 116,4251 13 5, 135, 0, 134, 109, 173, 312, 312, 134, 111,4252 2 25, 227, 368, 272, 272, 131, 227, 109, 149, 309,4253 319, 323, 111, 149, 370, 306, 230, 314, 109, 290,4254 109, 109, 51, 109, 37, 38, 40, 66, 72, 76,4255 79, 80, 81, 82, 86, 87, 109, 111, 120, 121,4100 76, 83, 84, 109, 111, 119, 137, 140, 197, 211, 4101 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 4102 222, 223, 224, 225, 226, 227, 228, 230, 231, 232, 4103 233, 234, 235, 236, 237, 239, 240, 241, 242, 243, 4104 244, 246, 254, 255, 282, 283, 284, 292, 295, 301, 4105 302, 304, 306, 307, 313, 318, 322, 323, 324, 325, 4106 326, 327, 328, 329, 349, 366, 367, 368, 369, 72, 4107 119, 139, 140, 214, 216, 224, 226, 236, 240, 242, 4108 283, 82, 109, 311, 312, 313, 311, 311, 72, 74, 4109 75, 76, 138, 139, 272, 273, 293, 294, 74, 75, 4110 273, 109, 304, 11, 198, 109, 119, 318, 323, 324, 4111 325, 327, 328, 329, 112, 134, 111, 217, 224, 226, 4112 322, 326, 365, 366, 369, 370, 135, 107, 131, 276, 4113 114, 135, 172, 74, 75, 137, 271, 135, 135, 135, 4114 116, 135, 74, 75, 109, 119, 308, 317, 318, 319, 4115 320, 321, 322, 326, 330, 331, 332, 333, 334, 340, 4116 3, 28, 78, 238, 3, 5, 74, 111, 119, 216, 4117 227, 231, 234, 243, 284, 322, 326, 369, 214, 216, 4118 226, 236, 240, 242, 283, 322, 326, 33, 232, 232, 4119 227, 234, 135, 232, 227, 232, 227, 75, 109, 114, 4120 273, 284, 114, 273, 232, 227, 116, 135, 135, 0, 4121 134, 109, 172, 311, 311, 134, 111, 224, 226, 367, 4122 271, 271, 226, 131, 109, 119, 308, 318, 322, 111, 4123 119, 369, 305, 229, 313, 109, 289, 109, 109, 51, 4124 109, 37, 38, 40, 66, 72, 76, 79, 80, 81, 4125 82, 86, 87, 94, 109, 111, 118, 119, 120, 121, 4256 4126 122, 123, 136, 140, 141, 142, 143, 148, 149, 150, 4257 4127 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 4258 161, 162, 164, 166, 225, 276, 292, 366, 371, 227, 4259 110, 110, 110, 110, 110, 110, 110, 74, 75, 111, 4260 225, 272, 350, 368, 111, 118, 149, 164, 217, 218, 4261 224, 227, 231, 232, 237, 240, 241, 243, 262, 263, 4262 267, 268, 269, 270, 284, 350, 362, 363, 364, 365, 4263 370, 371, 112, 109, 323, 327, 370, 109, 116, 132, 4264 111, 114, 149, 164, 278, 278, 115, 134, 116, 132, 4265 109, 116, 132, 116, 132, 116, 132, 312, 132, 319, 4266 320, 321, 322, 332, 333, 334, 335, 227, 318, 331, 4267 64, 311, 111, 312, 349, 350, 312, 312, 173, 134, 4268 109, 312, 349, 312, 312, 227, 309, 109, 109, 226, 4269 227, 225, 227, 112, 134, 225, 366, 371, 173, 134, 4270 272, 277, 217, 232, 323, 327, 173, 134, 294, 227, 4271 237, 132, 227, 227, 292, 40, 111, 225, 248, 249, 4272 250, 251, 366, 370, 246, 258, 274, 257, 227, 294, 4273 132, 132, 305, 134, 139, 271, 3, 135, 207, 208, 4274 222, 224, 227, 134, 311, 109, 311, 164, 319, 227, 4275 109, 134, 272, 114, 33, 34, 35, 225, 286, 287, 4276 289, 134, 129, 131, 291, 134, 228, 234, 235, 272, 4277 315, 316, 317, 109, 141, 109, 148, 109, 148, 151, 4278 109, 148, 109, 109, 148, 148, 111, 164, 169, 173, 4279 225, 275, 366, 112, 134, 82, 85, 86, 87, 109, 4280 111, 113, 114, 97, 98, 99, 100, 101, 102, 103, 4281 104, 105, 106, 131, 168, 151, 151, 118, 124, 125, 4282 120, 121, 88, 89, 90, 91, 126, 127, 92, 93, 4283 119, 128, 129, 94, 95, 130, 131, 373, 109, 149, 4284 345, 346, 347, 348, 349, 110, 116, 109, 349, 350, 4285 109, 349, 350, 134, 109, 225, 368, 112, 134, 135, 4286 111, 225, 227, 361, 362, 370, 371, 135, 109, 111, 4287 149, 319, 336, 337, 338, 339, 340, 341, 342, 343, 4288 344, 350, 351, 352, 353, 354, 355, 356, 149, 370, 4289 227, 135, 135, 149, 225, 227, 363, 272, 225, 350, 4290 363, 272, 109, 134, 134, 134, 112, 134, 72, 80, 4291 111, 113, 140, 274, 278, 279, 280, 281, 282, 134, 4292 134, 134, 134, 134, 134, 309, 110, 110, 110, 110, 4293 110, 110, 110, 318, 331, 109, 277, 112, 207, 134, 4294 309, 169, 276, 169, 276, 309, 111, 207, 311, 173, 4295 134, 207, 110, 250, 251, 112, 134, 109, 117, 149, 4296 252, 254, 318, 319, 331, 349, 357, 358, 359, 360, 4297 115, 249, 116, 132, 116, 132, 274, 114, 116, 372, 4298 131, 259, 114, 227, 264, 265, 266, 269, 270, 110, 4299 116, 173, 134, 118, 164, 134, 224, 227, 263, 362, 4300 370, 303, 304, 109, 149, 336, 110, 116, 373, 274, 4301 286, 109, 114, 274, 276, 286, 110, 116, 109, 141, 4302 110, 117, 275, 275, 275, 111, 139, 145, 164, 276, 4303 275, 112, 134, 110, 116, 110, 109, 149, 357, 110, 4304 116, 164, 111, 139, 111, 144, 145, 134, 111, 139, 4305 144, 164, 164, 151, 151, 151, 152, 152, 153, 153, 4306 154, 154, 154, 154, 155, 155, 156, 157, 158, 159, 4307 160, 117, 169, 164, 134, 346, 347, 348, 227, 345, 4308 312, 312, 164, 276, 134, 271, 134, 225, 350, 363, 4309 227, 231, 112, 112, 134, 370, 112, 109, 134, 319, 4310 337, 338, 339, 342, 352, 353, 354, 112, 134, 227, 4311 336, 340, 351, 109, 312, 355, 373, 312, 312, 373, 4312 109, 312, 355, 312, 312, 312, 312, 350, 225, 361, 4313 371, 272, 112, 116, 112, 116, 373, 225, 363, 373, 4314 260, 261, 262, 263, 260, 260, 272, 164, 134, 111, 4315 274, 117, 116, 372, 278, 80, 111, 117, 282, 29, 4316 209, 210, 272, 260, 139, 309, 139, 311, 109, 349, 4317 350, 109, 349, 350, 141, 350, 173, 264, 110, 110, 4318 110, 110, 112, 173, 207, 173, 114, 132, 132, 111, 4319 319, 358, 359, 360, 162, 163, 227, 357, 253, 254, 4320 253, 312, 312, 274, 312, 248, 274, 115, 163, 258, 4321 135, 135, 139, 222, 135, 135, 260, 109, 149, 370, 4322 135, 115, 227, 287, 288, 135, 134, 134, 109, 135, 4323 110, 316, 169, 170, 117, 132, 111, 141, 200, 201, 4324 202, 110, 116, 110, 134, 117, 110, 110, 110, 164, 4325 227, 114, 151, 166, 164, 165, 167, 116, 135, 134, 4326 134, 110, 116, 164, 134, 115, 162, 117, 264, 110, 4327 110, 110, 345, 264, 110, 260, 225, 363, 111, 118, 4328 149, 164, 164, 227, 342, 264, 110, 110, 110, 110, 4329 110, 110, 110, 7, 227, 336, 340, 351, 134, 134, 4330 373, 134, 134, 110, 135, 135, 135, 135, 277, 135, 4331 162, 163, 164, 310, 134, 278, 280, 115, 134, 211, 4332 274, 40, 41, 43, 46, 47, 48, 49, 50, 51, 4333 52, 53, 57, 61, 62, 72, 111, 128, 170, 171, 4334 172, 173, 174, 175, 177, 178, 190, 192, 193, 198, 4335 212, 308, 29, 135, 131, 277, 134, 134, 110, 135, 4336 173, 248, 112, 110, 110, 110, 357, 252, 115, 259, 4337 372, 110, 116, 112, 112, 135, 227, 116, 373, 290, 4338 110, 286, 215, 217, 225, 298, 299, 300, 301, 292, 4339 110, 110, 117, 163, 109, 110, 117, 116, 139, 164, 4340 164, 279, 116, 135, 167, 112, 139, 146, 147, 164, 4341 145, 135, 146, 162, 166, 135, 109, 349, 350, 135, 4342 135, 134, 135, 135, 135, 164, 110, 135, 109, 349, 4343 350, 109, 355, 109, 355, 350, 226, 7, 118, 135, 4344 164, 264, 264, 263, 267, 267, 268, 116, 116, 110, 4345 110, 112, 96, 123, 135, 135, 146, 278, 164, 116, 4346 132, 212, 216, 227, 231, 109, 109, 171, 109, 109, 4347 72, 132, 72, 132, 72, 118, 170, 109, 173, 165, 4348 165, 117, 112, 143, 132, 135, 134, 135, 211, 110, 4349 164, 264, 264, 312, 110, 115, 109, 349, 350, 115, 4350 134, 110, 134, 135, 309, 115, 134, 135, 135, 110, 4351 114, 200, 112, 163, 132, 200, 202, 110, 116, 135, 4352 372, 165, 112, 135, 85, 113, 116, 135, 135, 112, 4353 135, 110, 134, 110, 110, 112, 112, 112, 135, 110, 4354 134, 134, 134, 164, 164, 135, 112, 135, 135, 135, 4355 135, 134, 134, 163, 163, 112, 112, 135, 135, 274, 4356 227, 169, 169, 47, 169, 134, 132, 132, 132, 169, 4357 132, 169, 58, 59, 60, 194, 195, 196, 132, 63, 4358 132, 312, 114, 175, 115, 132, 135, 135, 134, 96, 4359 269, 270, 110, 299, 116, 132, 116, 132, 115, 297, 4360 117, 141, 110, 110, 117, 167, 112, 115, 112, 111, 4361 147, 111, 147, 147, 112, 112, 112, 264, 112, 264, 4362 264, 264, 135, 135, 112, 112, 110, 110, 112, 116, 4363 96, 263, 96, 135, 112, 112, 110, 110, 109, 110, 4364 170, 191, 212, 132, 110, 109, 109, 173, 196, 58, 4365 59, 164, 171, 144, 110, 110, 264, 114, 134, 134, 4366 298, 141, 203, 109, 132, 203, 135, 117, 134, 134, 4367 135, 135, 135, 135, 112, 112, 134, 135, 112, 171, 4368 44, 45, 114, 181, 182, 183, 169, 171, 135, 110, 4369 170, 114, 183, 96, 134, 96, 134, 109, 109, 132, 4370 115, 135, 134, 272, 309, 115, 116, 117, 163, 110, 4371 112, 164, 146, 146, 110, 110, 110, 110, 267, 42, 4372 163, 179, 180, 310, 117, 134, 171, 181, 110, 132, 4373 171, 132, 134, 110, 134, 110, 134, 96, 134, 96, 4374 134, 132, 110, 298, 141, 139, 204, 110, 132, 117, 4375 135, 135, 171, 96, 116, 117, 135, 205, 206, 212, 4376 132, 170, 170, 205, 173, 197, 225, 366, 173, 197, 4377 110, 134, 110, 134, 115, 110, 116, 164, 112, 112, 4378 163, 179, 182, 184, 185, 134, 132, 182, 186, 187, 4379 135, 109, 149, 309, 357, 139, 135, 173, 197, 173, 4380 197, 109, 132, 139, 171, 176, 115, 182, 212, 170, 4381 56, 176, 189, 115, 182, 110, 227, 110, 135, 135, 4382 292, 171, 176, 132, 188, 189, 176, 189, 173, 173, 4383 110, 110, 110, 188, 135, 135, 173, 173, 135, 135 4128 161, 163, 165, 224, 275, 291, 365, 370, 226, 110, 4129 110, 110, 110, 110, 110, 110, 74, 75, 111, 224, 4130 271, 349, 367, 111, 119, 163, 216, 217, 223, 226, 4131 230, 231, 236, 239, 240, 242, 261, 262, 266, 267, 4132 268, 269, 283, 349, 361, 362, 363, 364, 369, 370, 4133 112, 109, 322, 326, 369, 109, 116, 132, 111, 114, 4134 119, 163, 277, 277, 115, 134, 116, 132, 109, 116, 4135 132, 116, 132, 116, 132, 311, 132, 318, 319, 320, 4136 321, 331, 332, 333, 334, 226, 317, 330, 64, 310, 4137 111, 311, 348, 349, 311, 311, 172, 134, 109, 311, 4138 348, 311, 311, 226, 308, 109, 109, 225, 226, 224, 4139 226, 112, 134, 224, 365, 370, 172, 134, 271, 276, 4140 216, 231, 322, 326, 172, 134, 293, 226, 236, 132, 4141 226, 226, 291, 40, 111, 224, 247, 248, 249, 250, 4142 365, 369, 245, 257, 273, 256, 226, 293, 132, 132, 4143 304, 134, 139, 270, 3, 135, 206, 207, 221, 223, 4144 226, 134, 310, 109, 310, 163, 318, 226, 109, 134, 4145 271, 114, 33, 34, 35, 224, 285, 286, 288, 134, 4146 129, 131, 290, 134, 227, 233, 234, 271, 314, 315, 4147 316, 109, 141, 109, 148, 109, 148, 150, 109, 148, 4148 109, 109, 148, 148, 139, 111, 163, 168, 172, 224, 4149 274, 365, 112, 134, 150, 150, 82, 85, 86, 87, 4150 109, 111, 113, 114, 97, 98, 99, 100, 101, 102, 4151 103, 104, 105, 106, 131, 167, 150, 119, 124, 125, 4152 121, 122, 88, 89, 90, 91, 126, 127, 92, 93, 4153 120, 128, 129, 94, 95, 130, 131, 372, 109, 119, 4154 344, 345, 346, 347, 348, 110, 116, 109, 348, 349, 4155 109, 348, 349, 134, 109, 224, 367, 112, 134, 111, 4156 119, 135, 224, 226, 360, 361, 369, 370, 135, 109, 4157 111, 119, 318, 335, 336, 337, 338, 339, 340, 341, 4158 342, 343, 349, 350, 351, 352, 353, 354, 355, 119, 4159 369, 226, 135, 135, 119, 224, 226, 362, 271, 224, 4160 349, 362, 271, 109, 134, 134, 134, 112, 134, 72, 4161 80, 111, 113, 140, 273, 277, 278, 279, 280, 281, 4162 134, 134, 134, 134, 134, 134, 308, 110, 110, 110, 4163 110, 110, 110, 110, 317, 330, 109, 276, 112, 206, 4164 134, 308, 168, 275, 168, 275, 308, 111, 206, 310, 4165 172, 134, 206, 110, 249, 250, 112, 134, 109, 117, 4166 119, 251, 253, 317, 318, 330, 348, 356, 357, 358, 4167 359, 115, 248, 116, 132, 116, 132, 273, 114, 116, 4168 371, 131, 258, 114, 226, 263, 264, 265, 268, 269, 4169 110, 116, 172, 134, 119, 163, 134, 223, 226, 262, 4170 361, 369, 302, 303, 109, 119, 335, 110, 116, 372, 4171 273, 285, 109, 114, 273, 275, 285, 110, 116, 109, 4172 141, 110, 117, 274, 274, 274, 111, 139, 145, 163, 4173 275, 274, 112, 134, 110, 116, 110, 109, 119, 356, 4174 110, 116, 163, 111, 139, 111, 144, 145, 134, 111, 4175 139, 144, 163, 163, 150, 150, 150, 151, 151, 152, 4176 152, 153, 153, 153, 153, 154, 154, 155, 156, 157, 4177 158, 159, 117, 168, 163, 134, 345, 346, 347, 226, 4178 344, 311, 311, 163, 275, 134, 270, 119, 134, 224, 4179 349, 362, 226, 230, 112, 134, 112, 369, 112, 109, 4180 134, 318, 336, 337, 338, 341, 351, 352, 353, 112, 4181 134, 226, 335, 339, 350, 109, 311, 354, 372, 311, 4182 311, 372, 109, 311, 354, 311, 311, 311, 311, 349, 4183 224, 360, 370, 271, 112, 116, 112, 116, 372, 224, 4184 362, 372, 259, 260, 261, 262, 259, 259, 271, 163, 4185 134, 111, 273, 117, 116, 371, 277, 80, 111, 117, 4186 281, 29, 208, 209, 271, 259, 139, 308, 139, 310, 4187 109, 348, 349, 109, 348, 349, 141, 349, 172, 263, 4188 110, 110, 110, 110, 112, 172, 206, 172, 114, 132, 4189 132, 111, 318, 357, 358, 359, 161, 162, 226, 356, 4190 252, 253, 252, 311, 311, 273, 311, 247, 273, 115, 4191 162, 257, 135, 135, 139, 221, 135, 135, 259, 109, 4192 119, 369, 135, 115, 226, 286, 287, 135, 134, 134, 4193 109, 135, 110, 315, 168, 169, 117, 132, 111, 141, 4194 199, 200, 201, 110, 116, 110, 134, 117, 110, 110, 4195 110, 163, 226, 114, 150, 165, 163, 164, 166, 116, 4196 135, 134, 134, 110, 116, 163, 134, 115, 161, 117, 4197 263, 110, 110, 110, 344, 263, 110, 259, 224, 362, 4198 111, 119, 163, 163, 226, 341, 263, 110, 110, 110, 4199 110, 110, 110, 110, 7, 226, 335, 339, 350, 134, 4200 134, 372, 134, 134, 110, 135, 135, 135, 135, 276, 4201 135, 161, 162, 163, 309, 134, 277, 279, 115, 134, 4202 210, 273, 40, 41, 43, 46, 47, 48, 49, 50, 4203 51, 52, 53, 57, 61, 62, 111, 128, 139, 169, 4204 170, 171, 172, 173, 174, 176, 177, 189, 191, 192, 4205 197, 211, 307, 29, 135, 131, 276, 134, 134, 110, 4206 135, 172, 247, 112, 110, 110, 110, 356, 251, 115, 4207 258, 371, 110, 116, 112, 112, 135, 226, 116, 372, 4208 289, 110, 285, 214, 216, 224, 297, 298, 299, 300, 4209 291, 110, 110, 117, 162, 109, 110, 117, 116, 139, 4210 163, 163, 278, 116, 135, 166, 112, 139, 146, 147, 4211 163, 145, 135, 146, 161, 165, 135, 109, 348, 349, 4212 135, 135, 134, 135, 135, 135, 163, 110, 135, 109, 4213 348, 349, 109, 354, 109, 354, 349, 225, 7, 119, 4214 135, 163, 263, 263, 262, 266, 266, 267, 116, 116, 4215 110, 110, 112, 96, 123, 135, 135, 146, 277, 163, 4216 116, 132, 211, 215, 226, 230, 109, 109, 170, 109, 4217 109, 132, 139, 132, 139, 119, 139, 169, 109, 172, 4218 164, 164, 112, 143, 117, 132, 135, 134, 135, 210, 4219 110, 163, 263, 263, 311, 110, 115, 109, 348, 349, 4220 115, 134, 110, 134, 135, 308, 115, 134, 135, 135, 4221 110, 114, 199, 112, 162, 132, 199, 201, 110, 116, 4222 135, 371, 164, 112, 135, 85, 113, 116, 135, 135, 4223 112, 135, 110, 134, 110, 110, 112, 112, 112, 135, 4224 110, 134, 134, 134, 163, 163, 135, 112, 135, 135, 4225 135, 135, 134, 134, 162, 162, 112, 112, 135, 135, 4226 273, 226, 168, 168, 47, 168, 134, 132, 132, 168, 4227 132, 132, 168, 58, 59, 60, 193, 194, 195, 132, 4228 63, 132, 114, 311, 174, 115, 132, 135, 135, 134, 4229 96, 268, 269, 110, 298, 116, 132, 116, 132, 115, 4230 296, 117, 141, 110, 110, 117, 166, 112, 115, 112, 4231 111, 147, 111, 147, 147, 112, 112, 112, 263, 112, 4232 263, 263, 263, 135, 135, 112, 112, 110, 110, 112, 4233 116, 96, 262, 96, 135, 112, 112, 110, 110, 109, 4234 110, 169, 190, 211, 132, 110, 109, 109, 172, 195, 4235 58, 59, 163, 144, 170, 110, 110, 263, 114, 134, 4236 134, 297, 141, 202, 109, 132, 202, 135, 117, 134, 4237 134, 135, 135, 135, 135, 112, 112, 134, 135, 112, 4238 170, 44, 45, 114, 180, 181, 182, 168, 170, 135, 4239 110, 169, 114, 182, 96, 134, 96, 134, 109, 109, 4240 132, 115, 135, 134, 271, 308, 115, 116, 117, 162, 4241 110, 112, 163, 146, 146, 110, 110, 110, 110, 266, 4242 42, 162, 178, 179, 309, 117, 134, 170, 180, 110, 4243 132, 170, 132, 134, 110, 134, 110, 134, 96, 134, 4244 96, 134, 132, 110, 297, 141, 139, 203, 110, 132, 4245 117, 135, 135, 170, 96, 116, 117, 135, 204, 205, 4246 211, 132, 169, 169, 204, 172, 196, 224, 365, 172, 4247 196, 110, 134, 110, 134, 115, 110, 116, 163, 112, 4248 112, 162, 178, 181, 183, 184, 134, 132, 181, 185, 4249 186, 135, 109, 119, 308, 356, 139, 135, 172, 196, 4250 172, 196, 109, 132, 139, 170, 175, 115, 181, 211, 4251 169, 56, 175, 188, 115, 181, 110, 226, 110, 135, 4252 135, 291, 170, 175, 132, 187, 188, 175, 188, 172, 4253 172, 110, 110, 110, 187, 135, 135, 172, 172, 135, 4254 135 4384 4255 }; 4385 4256 … … 5218 5089 5219 5090 /* Line 1806 of yacc.c */ 5220 #line 29 0"parser.yy"5091 #line 292 "parser.yy" 5221 5092 { 5222 5093 typedefTable.enterScope(); … … 5227 5098 5228 5099 /* Line 1806 of yacc.c */ 5229 #line 29 6"parser.yy"5100 #line 298 "parser.yy" 5230 5101 { 5231 5102 typedefTable.leaveScope(); … … 5236 5107 5237 5108 /* Line 1806 of yacc.c */ 5238 #line 30 5"parser.yy"5109 #line 307 "parser.yy" 5239 5110 { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); } 5240 5111 break; … … 5243 5114 5244 5115 /* Line 1806 of yacc.c */ 5245 #line 30 6"parser.yy"5116 #line 308 "parser.yy" 5246 5117 { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); } 5247 5118 break; … … 5250 5121 5251 5122 /* Line 1806 of yacc.c */ 5252 #line 30 7"parser.yy"5123 #line 309 "parser.yy" 5253 5124 { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); } 5254 5125 break; … … 5257 5128 5258 5129 /* Line 1806 of yacc.c */ 5259 #line 33 2"parser.yy"5130 #line 334 "parser.yy" 5260 5131 { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); } 5261 5132 break; … … 5264 5135 5265 5136 /* Line 1806 of yacc.c */ 5266 #line 33 3"parser.yy"5137 #line 335 "parser.yy" 5267 5138 { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); } 5268 5139 break; 5269 5140 5270 5141 case 18: 5271 5272 /* Line 1806 of yacc.c */5273 #line 340 "parser.yy"5274 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5275 break;5276 5277 case 19:5278 5142 5279 5143 /* Line 1806 of yacc.c */ … … 5282 5146 break; 5283 5147 5148 case 19: 5149 5150 /* Line 1806 of yacc.c */ 5151 #line 344 "parser.yy" 5152 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5153 break; 5154 5284 5155 case 20: 5285 5156 5286 5157 /* Line 1806 of yacc.c */ 5287 #line 34 4"parser.yy"5158 #line 346 "parser.yy" 5288 5159 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5289 5160 break; … … 5292 5163 5293 5164 /* Line 1806 of yacc.c */ 5294 #line 34 6"parser.yy"5165 #line 348 "parser.yy" 5295 5166 { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); } 5296 5167 break; … … 5299 5170 5300 5171 /* Line 1806 of yacc.c */ 5301 #line 35 6"parser.yy"5172 #line 358 "parser.yy" 5302 5173 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); } 5303 5174 break; … … 5306 5177 5307 5178 /* Line 1806 of yacc.c */ 5308 #line 3 58"parser.yy"5179 #line 360 "parser.yy" 5309 5180 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); } 5310 5181 break; … … 5313 5184 5314 5185 /* Line 1806 of yacc.c */ 5315 #line 36 2"parser.yy"5186 #line 364 "parser.yy" 5316 5187 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5317 5188 break; … … 5320 5191 5321 5192 /* Line 1806 of yacc.c */ 5322 #line 36 5"parser.yy"5193 #line 367 "parser.yy" 5323 5194 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5324 5195 break; … … 5327 5198 5328 5199 /* Line 1806 of yacc.c */ 5329 #line 3 68"parser.yy"5200 #line 370 "parser.yy" 5330 5201 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); } 5331 5202 break; … … 5334 5205 5335 5206 /* Line 1806 of yacc.c */ 5336 #line 37 0"parser.yy"5207 #line 372 "parser.yy" 5337 5208 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); } 5338 5209 break; … … 5341 5212 5342 5213 /* Line 1806 of yacc.c */ 5343 #line 37 2"parser.yy"5214 #line 374 "parser.yy" 5344 5215 { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); } 5345 5216 break; … … 5348 5219 5349 5220 /* Line 1806 of yacc.c */ 5350 #line 37 4"parser.yy"5221 #line 376 "parser.yy" 5351 5222 { 5352 5223 Token fn; fn.str = new std::string( "?{}" ); // location undefined … … 5358 5229 5359 5230 /* Line 1806 of yacc.c */ 5360 #line 38 3"parser.yy"5231 #line 385 "parser.yy" 5361 5232 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 5362 5233 break; … … 5365 5236 5366 5237 /* Line 1806 of yacc.c */ 5367 #line 3 88"parser.yy"5238 #line 390 "parser.yy" 5368 5239 { (yyval.en) = 0; } 5369 5240 break; … … 5372 5243 5373 5244 /* Line 1806 of yacc.c */ 5374 #line 39 1"parser.yy"5245 #line 393 "parser.yy" 5375 5246 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); } 5376 5247 break; … … 5379 5250 5380 5251 /* Line 1806 of yacc.c */ 5381 #line 39 6"parser.yy"5252 #line 398 "parser.yy" 5382 5253 { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); } 5383 5254 break; … … 5386 5257 5387 5258 /* Line 1806 of yacc.c */ 5388 #line 398"parser.yy"5259 #line 400 "parser.yy" 5389 5260 { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); } 5390 5261 break; … … 5393 5264 5394 5265 /* Line 1806 of yacc.c */ 5395 #line 40 3"parser.yy"5266 #line 405 "parser.yy" 5396 5267 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5397 5268 break; … … 5400 5271 5401 5272 /* Line 1806 of yacc.c */ 5402 #line 4 08"parser.yy"5273 #line 410 "parser.yy" 5403 5274 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5404 5275 break; … … 5407 5278 5408 5279 /* Line 1806 of yacc.c */ 5409 #line 41 2"parser.yy"5280 #line 414 "parser.yy" 5410 5281 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); } 5411 5282 break; … … 5414 5285 5415 5286 /* Line 1806 of yacc.c */ 5416 #line 41 4"parser.yy"5287 #line 416 "parser.yy" 5417 5288 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); } 5418 5289 break; … … 5421 5292 5422 5293 /* Line 1806 of yacc.c */ 5423 #line 41 6"parser.yy"5294 #line 418 "parser.yy" 5424 5295 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); } 5425 5296 break; … … 5428 5299 5429 5300 /* Line 1806 of yacc.c */ 5430 #line 4 18"parser.yy"5301 #line 420 "parser.yy" 5431 5302 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); } 5432 5303 break; 5433 5304 5434 5305 case 48: 5435 5436 /* Line 1806 of yacc.c */5437 #line 426 "parser.yy"5438 { (yyval.en) = (yyvsp[(1) - (1)].constant); }5439 break;5440 5441 case 49:5442 5306 5443 5307 /* Line 1806 of yacc.c */ … … 5446 5310 break; 5447 5311 5312 case 49: 5313 5314 /* Line 1806 of yacc.c */ 5315 #line 430 "parser.yy" 5316 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5317 break; 5318 5448 5319 case 50: 5449 5320 5450 5321 /* Line 1806 of yacc.c */ 5451 #line 43 0"parser.yy"5452 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true); }5322 #line 432 "parser.yy" 5323 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); } 5453 5324 break; 5454 5325 … … 5456 5327 5457 5328 /* Line 1806 of yacc.c */ 5458 #line 432 "parser.yy" 5329 #line 434 "parser.yy" 5330 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); } 5331 break; 5332 5333 case 52: 5334 5335 /* Line 1806 of yacc.c */ 5336 #line 436 "parser.yy" 5337 { (yyval.en) = (yyvsp[(2) - (2)].en); } 5338 break; 5339 5340 case 53: 5341 5342 /* Line 1806 of yacc.c */ 5343 #line 438 "parser.yy" 5459 5344 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5460 5345 break; 5461 5346 5462 case 52:5463 5464 /* Line 1806 of yacc.c */5465 #line 437 "parser.yy"5466 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }5467 break;5468 5469 case 53:5470 5471 /* Line 1806 of yacc.c */5472 #line 439 "parser.yy"5473 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }5474 break;5475 5476 5347 case 54: 5477 5348 5478 5349 /* Line 1806 of yacc.c */ 5479 #line 44 1"parser.yy"5480 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode:: Decr), (yyvsp[(2) - (2)].en) ); }5350 #line 440 "parser.yy" 5351 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); } 5481 5352 break; 5482 5353 … … 5484 5355 5485 5356 /* Line 1806 of yacc.c */ 5486 #line 443 "parser.yy" 5357 #line 442 "parser.yy" 5358 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); } 5359 break; 5360 5361 case 56: 5362 5363 /* Line 1806 of yacc.c */ 5364 #line 448 "parser.yy" 5487 5365 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); } 5488 5366 break; 5489 5367 5490 case 5 6:5491 5492 /* Line 1806 of yacc.c */ 5493 #line 4 45"parser.yy"5368 case 57: 5369 5370 /* Line 1806 of yacc.c */ 5371 #line 450 "parser.yy" 5494 5372 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5495 5373 break; 5496 5374 5497 case 5 7:5498 5499 /* Line 1806 of yacc.c */ 5500 #line 4 47"parser.yy"5375 case 58: 5376 5377 /* Line 1806 of yacc.c */ 5378 #line 452 "parser.yy" 5501 5379 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); } 5502 5380 break; 5503 5381 5504 case 5 8:5505 5506 /* Line 1806 of yacc.c */ 5507 #line 4 49"parser.yy"5382 case 59: 5383 5384 /* Line 1806 of yacc.c */ 5385 #line 454 "parser.yy" 5508 5386 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); } 5509 5387 break; 5510 5388 5511 case 59:5512 5513 /* Line 1806 of yacc.c */ 5514 #line 45 1"parser.yy"5389 case 60: 5390 5391 /* Line 1806 of yacc.c */ 5392 #line 456 "parser.yy" 5515 5393 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5516 5394 break; 5517 5395 5518 case 6 0:5519 5520 /* Line 1806 of yacc.c */ 5521 #line 45 3"parser.yy"5396 case 61: 5397 5398 /* Line 1806 of yacc.c */ 5399 #line 458 "parser.yy" 5522 5400 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); } 5523 5401 break; 5524 5402 5525 case 6 1:5526 5527 /* Line 1806 of yacc.c */ 5528 #line 4 55"parser.yy"5403 case 62: 5404 5405 /* Line 1806 of yacc.c */ 5406 #line 460 "parser.yy" 5529 5407 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); } 5530 5408 break; 5531 5409 5532 case 6 2:5533 5534 /* Line 1806 of yacc.c */ 5535 #line 4 57"parser.yy"5410 case 63: 5411 5412 /* Line 1806 of yacc.c */ 5413 #line 462 "parser.yy" 5536 5414 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); } 5537 5415 break; 5538 5416 5539 case 63:5540 5541 /* Line 1806 of yacc.c */5542 #line 463 "parser.yy"5543 { (yyval.en) = new OperatorNode( OperatorNode::PointTo ); }5544 break;5545 5546 5417 case 64: 5547 5418 5548 5419 /* Line 1806 of yacc.c */ 5549 5420 #line 464 "parser.yy" 5421 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); } 5422 break; 5423 5424 case 65: 5425 5426 /* Line 1806 of yacc.c */ 5427 #line 468 "parser.yy" 5550 5428 { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); } 5551 5429 break; 5552 5430 5553 case 65:5554 5555 /* Line 1806 of yacc.c */5556 #line 466 "parser.yy"5557 { (yyval.en) = new OperatorNode( OperatorNode::And ); }5558 break;5559 5560 5431 case 66: 5561 5432 5562 5433 /* Line 1806 of yacc.c */ 5434 #line 469 "parser.yy" 5435 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); } 5436 break; 5437 5438 case 67: 5439 5440 /* Line 1806 of yacc.c */ 5563 5441 #line 470 "parser.yy" 5564 { (yyval.en) = new OperatorNode( OperatorNode::Un Plus ); }5565 break; 5566 5567 case 6 7:5442 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); } 5443 break; 5444 5445 case 68: 5568 5446 5569 5447 /* Line 1806 of yacc.c */ 5570 5448 #line 471 "parser.yy" 5571 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }5572 break;5573 5574 case 68:5575 5576 /* Line 1806 of yacc.c */5577 #line 472 "parser.yy"5578 { (yyval.en) = new OperatorNode( OperatorNode::Neg ); }5579 break;5580 5581 case 69:5582 5583 /* Line 1806 of yacc.c */5584 #line 473 "parser.yy"5585 5449 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); } 5450 break; 5451 5452 case 70: 5453 5454 /* Line 1806 of yacc.c */ 5455 #line 477 "parser.yy" 5456 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); } 5586 5457 break; 5587 5458 … … 5593 5464 break; 5594 5465 5595 case 7 2:5596 5597 /* Line 1806 of yacc.c */ 5598 #line 48 1"parser.yy"5599 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode:: Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }5466 case 73: 5467 5468 /* Line 1806 of yacc.c */ 5469 #line 485 "parser.yy" 5470 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5600 5471 break; 5601 5472 … … 5604 5475 /* Line 1806 of yacc.c */ 5605 5476 #line 487 "parser.yy" 5606 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode:: Mul), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5477 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5607 5478 break; 5608 5479 … … 5611 5482 /* Line 1806 of yacc.c */ 5612 5483 #line 489 "parser.yy" 5613 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5614 break;5615 5616 case 76:5617 5618 /* Line 1806 of yacc.c */5619 #line 491 "parser.yy"5620 5484 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5621 5485 break; 5622 5486 5487 case 77: 5488 5489 /* Line 1806 of yacc.c */ 5490 #line 495 "parser.yy" 5491 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5492 break; 5493 5623 5494 case 78: 5624 5495 5625 5496 /* Line 1806 of yacc.c */ 5626 5497 #line 497 "parser.yy" 5627 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5628 break;5629 5630 case 79:5631 5632 /* Line 1806 of yacc.c */5633 #line 499 "parser.yy"5634 5498 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5635 5499 break; 5636 5500 5501 case 80: 5502 5503 /* Line 1806 of yacc.c */ 5504 #line 503 "parser.yy" 5505 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5506 break; 5507 5637 5508 case 81: 5638 5509 5639 5510 /* Line 1806 of yacc.c */ 5640 5511 #line 505 "parser.yy" 5641 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5642 break;5643 5644 case 82:5645 5646 /* Line 1806 of yacc.c */5647 #line 507 "parser.yy"5648 5512 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5649 5513 break; 5650 5514 5515 case 83: 5516 5517 /* Line 1806 of yacc.c */ 5518 #line 511 "parser.yy" 5519 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5520 break; 5521 5651 5522 case 84: 5652 5523 5653 5524 /* Line 1806 of yacc.c */ 5654 5525 #line 513 "parser.yy" 5655 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode:: LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5526 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5656 5527 break; 5657 5528 … … 5660 5531 /* Line 1806 of yacc.c */ 5661 5532 #line 515 "parser.yy" 5662 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode:: GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5533 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5663 5534 break; 5664 5535 … … 5667 5538 /* Line 1806 of yacc.c */ 5668 5539 #line 517 "parser.yy" 5669 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5670 break;5671 5672 case 87:5673 5674 /* Line 1806 of yacc.c */5675 #line 519 "parser.yy"5676 5540 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5677 5541 break; 5678 5542 5543 case 88: 5544 5545 /* Line 1806 of yacc.c */ 5546 #line 523 "parser.yy" 5547 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5548 break; 5549 5679 5550 case 89: 5680 5551 5681 5552 /* Line 1806 of yacc.c */ 5682 5553 #line 525 "parser.yy" 5683 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5684 break;5685 5686 case 90:5687 5688 /* Line 1806 of yacc.c */5689 #line 527 "parser.yy"5690 5554 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5691 5555 break; 5692 5556 5693 case 9 2:5694 5695 /* Line 1806 of yacc.c */ 5696 #line 53 3"parser.yy"5557 case 91: 5558 5559 /* Line 1806 of yacc.c */ 5560 #line 531 "parser.yy" 5697 5561 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5698 5562 break; 5699 5563 5700 case 9 4:5701 5702 /* Line 1806 of yacc.c */ 5703 #line 53 9"parser.yy"5564 case 93: 5565 5566 /* Line 1806 of yacc.c */ 5567 #line 537 "parser.yy" 5704 5568 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5705 5569 break; 5706 5570 5707 case 9 6:5708 5709 /* Line 1806 of yacc.c */ 5710 #line 54 5"parser.yy"5571 case 95: 5572 5573 /* Line 1806 of yacc.c */ 5574 #line 543 "parser.yy" 5711 5575 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5712 5576 break; 5713 5577 5714 case 9 8:5715 5716 /* Line 1806 of yacc.c */ 5717 #line 5 51"parser.yy"5578 case 97: 5579 5580 /* Line 1806 of yacc.c */ 5581 #line 549 "parser.yy" 5718 5582 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5719 5583 break; 5720 5584 5721 case 100:5722 5723 /* Line 1806 of yacc.c */ 5724 #line 55 7"parser.yy"5585 case 99: 5586 5587 /* Line 1806 of yacc.c */ 5588 #line 555 "parser.yy" 5725 5589 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5726 5590 break; 5727 5591 5592 case 101: 5593 5594 /* Line 1806 of yacc.c */ 5595 #line 561 "parser.yy" 5596 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5597 break; 5598 5728 5599 case 102: 5729 5600 5730 5601 /* Line 1806 of yacc.c */ 5731 5602 #line 563 "parser.yy" 5603 { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5604 break; 5605 5606 case 103: 5607 5608 /* Line 1806 of yacc.c */ 5609 #line 565 "parser.yy" 5732 5610 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5733 5611 break; 5734 5612 5735 case 103: 5736 5737 /* Line 1806 of yacc.c */ 5738 #line 565 "parser.yy" 5739 { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5740 break; 5741 5742 case 104: 5743 5744 /* Line 1806 of yacc.c */ 5745 #line 567 "parser.yy" 5746 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5613 case 106: 5614 5615 /* Line 1806 of yacc.c */ 5616 #line 576 "parser.yy" 5617 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5747 5618 break; 5748 5619 … … 5751 5622 /* Line 1806 of yacc.c */ 5752 5623 #line 578 "parser.yy" 5753 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5624 { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5754 5625 break; 5755 5626 … … 5758 5629 /* Line 1806 of yacc.c */ 5759 5630 #line 580 "parser.yy" 5760 { (yyval.en) = new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5631 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5761 5632 break; 5762 5633 … … 5764 5635 5765 5636 /* Line 1806 of yacc.c */ 5766 #line 582 "parser.yy" 5767 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5768 break; 5769 5770 case 110: 5771 5772 /* Line 1806 of yacc.c */ 5773 #line 587 "parser.yy" 5637 #line 585 "parser.yy" 5774 5638 { (yyval.en) = new NullExprNode; } 5775 5639 break; 5776 5640 5641 case 111: 5642 5643 /* Line 1806 of yacc.c */ 5644 #line 593 "parser.yy" 5645 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); } 5646 break; 5647 5777 5648 case 112: 5778 5649 5779 5650 /* Line 1806 of yacc.c */ 5780 5651 #line 595 "parser.yy" 5781 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }5652 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); } 5782 5653 break; 5783 5654 … … 5786 5657 /* Line 1806 of yacc.c */ 5787 5658 #line 597 "parser.yy" 5788 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), ( yyvsp[(3) - (5)].en) ); }5659 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); } 5789 5660 break; 5790 5661 … … 5793 5664 /* Line 1806 of yacc.c */ 5794 5665 #line 599 "parser.yy" 5795 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }5796 break;5797 5798 case 115:5799 5800 /* Line 1806 of yacc.c */5801 #line 601 "parser.yy"5802 5666 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); } 5803 5667 break; 5804 5668 5669 case 116: 5670 5671 /* Line 1806 of yacc.c */ 5672 #line 605 "parser.yy" 5673 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5674 break; 5675 5805 5676 case 117: 5806 5677 5807 5678 /* Line 1806 of yacc.c */ 5808 #line 60 7"parser.yy"5809 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en)); }5679 #line 609 "parser.yy" 5680 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); } 5810 5681 break; 5811 5682 … … 5813 5684 5814 5685 /* Line 1806 of yacc.c */ 5686 #line 610 "parser.yy" 5687 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); } 5688 break; 5689 5690 case 119: 5691 5692 /* Line 1806 of yacc.c */ 5815 5693 #line 611 "parser.yy" 5816 { (yyval.en) = new OperatorNode( OperatorNode::M ulAssn ); }5817 break; 5818 5819 case 1 19:5694 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); } 5695 break; 5696 5697 case 120: 5820 5698 5821 5699 /* Line 1806 of yacc.c */ 5822 5700 #line 612 "parser.yy" 5823 { (yyval.en) = new OperatorNode( OperatorNode:: DivAssn ); }5824 break; 5825 5826 case 12 0:5701 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); } 5702 break; 5703 5704 case 121: 5827 5705 5828 5706 /* Line 1806 of yacc.c */ 5829 5707 #line 613 "parser.yy" 5830 { (yyval.en) = new OperatorNode( OperatorNode::M odAssn ); }5831 break; 5832 5833 case 12 1:5708 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); } 5709 break; 5710 5711 case 122: 5834 5712 5835 5713 /* Line 1806 of yacc.c */ 5836 5714 #line 614 "parser.yy" 5837 { (yyval.en) = new OperatorNode( OperatorNode:: PlusAssn ); }5838 break; 5839 5840 case 12 2:5715 { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); } 5716 break; 5717 5718 case 123: 5841 5719 5842 5720 /* Line 1806 of yacc.c */ 5843 5721 #line 615 "parser.yy" 5844 { (yyval.en) = new OperatorNode( OperatorNode:: MinusAssn ); }5845 break; 5846 5847 case 12 3:5722 { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); } 5723 break; 5724 5725 case 124: 5848 5726 5849 5727 /* Line 1806 of yacc.c */ 5850 5728 #line 616 "parser.yy" 5851 { (yyval.en) = new OperatorNode( OperatorNode:: LSAssn ); }5852 break; 5853 5854 case 12 4:5729 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); } 5730 break; 5731 5732 case 125: 5855 5733 5856 5734 /* Line 1806 of yacc.c */ 5857 5735 #line 617 "parser.yy" 5858 { (yyval.en) = new OperatorNode( OperatorNode:: RSAssn ); }5859 break; 5860 5861 case 12 5:5736 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); } 5737 break; 5738 5739 case 126: 5862 5740 5863 5741 /* Line 1806 of yacc.c */ 5864 5742 #line 618 "parser.yy" 5865 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }5866 break;5867 5868 case 126:5869 5870 /* Line 1806 of yacc.c */5871 #line 619 "parser.yy"5872 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }5873 break;5874 5875 case 127:5876 5877 /* Line 1806 of yacc.c */5878 #line 620 "parser.yy"5879 5743 { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); } 5880 5744 break; 5881 5745 5746 case 128: 5747 5748 /* Line 1806 of yacc.c */ 5749 #line 624 "parser.yy" 5750 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5751 break; 5752 5882 5753 case 129: 5883 5754 5884 5755 /* Line 1806 of yacc.c */ 5885 #line 626 "parser.yy" 5886 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5887 break; 5888 5889 case 130: 5890 5891 /* Line 1806 of yacc.c */ 5892 #line 631 "parser.yy" 5756 #line 629 "parser.yy" 5893 5757 { (yyval.en) = 0; } 5894 5758 break; 5895 5759 5896 case 13 4:5897 5898 /* Line 1806 of yacc.c */ 5899 #line 6 40"parser.yy"5760 case 133: 5761 5762 /* Line 1806 of yacc.c */ 5763 #line 638 "parser.yy" 5900 5764 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5901 5765 break; 5902 5766 5903 case 1 40:5904 5905 /* Line 1806 of yacc.c */ 5906 #line 64 7"parser.yy"5767 case 139: 5768 5769 /* Line 1806 of yacc.c */ 5770 #line 645 "parser.yy" 5907 5771 { 5908 5772 Token fn; fn.str = new std::string( "^?{}" ); // location undefined 5909 5773 (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ), 5910 (ExpressionNode *)( (yyvsp[(2) - (6)].en))->set_link( (yyvsp[(4) - (6)].en) ) ), 0 );5774 (ExpressionNode *)(new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), (yyvsp[(2) - (6)].en) ))->set_link( (yyvsp[(4) - (6)].en) ) ), 0 ); 5911 5775 } 5912 5776 break; 5913 5777 5914 case 14 1:5915 5916 /* Line 1806 of yacc.c */ 5917 #line 65 7"parser.yy"5778 case 140: 5779 5780 /* Line 1806 of yacc.c */ 5781 #line 654 "parser.yy" 5918 5782 { 5919 5783 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5921 5785 break; 5922 5786 5787 case 141: 5788 5789 /* Line 1806 of yacc.c */ 5790 #line 661 "parser.yy" 5791 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5792 break; 5793 5923 5794 case 142: 5924 5795 5925 5796 /* Line 1806 of yacc.c */ 5926 #line 664 "parser.yy" 5927 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5928 break; 5929 5930 case 143: 5931 5932 /* Line 1806 of yacc.c */ 5933 #line 671 "parser.yy" 5797 #line 668 "parser.yy" 5934 5798 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5935 5799 break; 5936 5800 5801 case 144: 5802 5803 /* Line 1806 of yacc.c */ 5804 #line 674 "parser.yy" 5805 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5806 break; 5807 5937 5808 case 145: 5938 5809 5939 5810 /* Line 1806 of yacc.c */ 5940 #line 67 7"parser.yy"5941 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); }}5811 #line 679 "parser.yy" 5812 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5942 5813 break; 5943 5814 … … 5945 5816 5946 5817 /* Line 1806 of yacc.c */ 5947 #line 682 "parser.yy" 5818 #line 681 "parser.yy" 5819 { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); } 5820 break; 5821 5822 case 147: 5823 5824 /* Line 1806 of yacc.c */ 5825 #line 683 "parser.yy" 5948 5826 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5949 5827 break; 5950 5828 5951 case 147: 5952 5953 /* Line 1806 of yacc.c */ 5954 #line 684 "parser.yy" 5955 { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) )/*->set_extension( true )*/; } 5956 break; 5957 5958 case 148: 5959 5960 /* Line 1806 of yacc.c */ 5961 #line 686 "parser.yy" 5962 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5829 case 150: 5830 5831 /* Line 1806 of yacc.c */ 5832 #line 690 "parser.yy" 5833 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5963 5834 break; 5964 5835 … … 5966 5837 5967 5838 /* Line 1806 of yacc.c */ 5968 #line 69 3"parser.yy"5969 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); }}5839 #line 695 "parser.yy" 5840 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); } 5970 5841 break; 5971 5842 … … 5973 5844 5974 5845 /* Line 1806 of yacc.c */ 5975 #line 698"parser.yy"5976 { (yyval.sn) = new StatementNode( StatementNode:: Exp, (yyvsp[(1) - (2)].en), 0); }5846 #line 701 "parser.yy" 5847 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5977 5848 break; 5978 5849 … … 5980 5851 5981 5852 /* Line 1806 of yacc.c */ 5982 #line 70 4"parser.yy"5983 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - ( 5)].en), (yyvsp[(5) - (5)].sn) ); }5853 #line 703 "parser.yy" 5854 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); } 5984 5855 break; 5985 5856 … … 5987 5858 5988 5859 /* Line 1806 of yacc.c */ 5989 #line 70 6"parser.yy"5990 { (yyval.sn) = new StatementNode( StatementNode:: If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }5860 #line 705 "parser.yy" 5861 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5991 5862 break; 5992 5863 … … 5994 5865 5995 5866 /* Line 1806 of yacc.c */ 5996 #line 70 8"parser.yy"5997 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - ( 5)].en), (yyvsp[(5) - (5)].sn) );}5867 #line 707 "parser.yy" 5868 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ } 5998 5869 break; 5999 5870 … … 6001 5872 6002 5873 /* Line 1806 of yacc.c */ 6003 #line 71 0"parser.yy"6004 { (yyval.sn) = new StatementNode( StatementNode:: Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */}5874 #line 712 "parser.yy" 5875 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6005 5876 break; 6006 5877 … … 6008 5879 6009 5880 /* Line 1806 of yacc.c */ 6010 #line 71 5"parser.yy"6011 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - ( 5)].en), (yyvsp[(5) - (5)].sn) ); }5881 #line 714 "parser.yy" 5882 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); } 6012 5883 break; 6013 5884 … … 6015 5886 6016 5887 /* Line 1806 of yacc.c */ 6017 #line 7 17"parser.yy"6018 { (yyval. sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); }5888 #line 721 "parser.yy" 5889 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6019 5890 break; 6020 5891 … … 6022 5893 6023 5894 /* Line 1806 of yacc.c */ 6024 #line 724 "parser.yy" 6025 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6026 break; 6027 6028 case 160: 6029 6030 /* Line 1806 of yacc.c */ 6031 #line 726 "parser.yy" 5895 #line 723 "parser.yy" 6032 5896 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 6033 5897 break; 6034 5898 5899 case 162: 5900 5901 /* Line 1806 of yacc.c */ 5902 #line 730 "parser.yy" 5903 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); } 5904 break; 5905 6035 5906 case 163: 6036 5907 6037 5908 /* Line 1806 of yacc.c */ 6038 #line 73 3"parser.yy"6039 { (yyval. en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) )); }5909 #line 734 "parser.yy" 5910 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); } 6040 5911 break; 6041 5912 … … 6043 5914 6044 5915 /* Line 1806 of yacc.c */ 6045 #line 737 "parser.yy" 6046 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); } 6047 break; 6048 6049 case 165: 6050 6051 /* Line 1806 of yacc.c */ 6052 #line 738 "parser.yy" 5916 #line 735 "parser.yy" 6053 5917 { (yyval.sn) = new StatementNode( StatementNode::Default ); } 6054 5918 break; 6055 5919 5920 case 166: 5921 5922 /* Line 1806 of yacc.c */ 5923 #line 741 "parser.yy" 5924 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 5925 break; 5926 6056 5927 case 167: 6057 5928 6058 5929 /* Line 1806 of yacc.c */ 6059 #line 74 4"parser.yy"6060 { (yyval.sn) = ( StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }5930 #line 745 "parser.yy" 5931 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6061 5932 break; 6062 5933 … … 6064 5935 6065 5936 /* Line 1806 of yacc.c */ 6066 #line 748 "parser.yy" 5937 #line 750 "parser.yy" 5938 { (yyval.sn) = 0; } 5939 break; 5940 5941 case 170: 5942 5943 /* Line 1806 of yacc.c */ 5944 #line 756 "parser.yy" 6067 5945 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6068 5946 break; 6069 5947 6070 case 169: 6071 6072 /* Line 1806 of yacc.c */ 6073 #line 753 "parser.yy" 5948 case 171: 5949 5950 /* Line 1806 of yacc.c */ 5951 #line 758 "parser.yy" 5952 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5953 break; 5954 5955 case 172: 5956 5957 /* Line 1806 of yacc.c */ 5958 #line 763 "parser.yy" 6074 5959 { (yyval.sn) = 0; } 6075 5960 break; 6076 5961 6077 case 17 1:6078 6079 /* Line 1806 of yacc.c */ 6080 #line 7 59 "parser.yy"5962 case 174: 5963 5964 /* Line 1806 of yacc.c */ 5965 #line 769 "parser.yy" 6081 5966 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6082 5967 break; 6083 5968 6084 case 172: 6085 6086 /* Line 1806 of yacc.c */ 6087 #line 761 "parser.yy" 5969 case 175: 5970 5971 /* Line 1806 of yacc.c */ 5972 #line 771 "parser.yy" 5973 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); } 5974 break; 5975 5976 case 176: 5977 5978 /* Line 1806 of yacc.c */ 5979 #line 773 "parser.yy" 6088 5980 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 6089 5981 break; 6090 5982 6091 case 173: 6092 6093 /* Line 1806 of yacc.c */ 6094 #line 766 "parser.yy" 5983 case 177: 5984 5985 /* Line 1806 of yacc.c */ 5986 #line 775 "parser.yy" 5987 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); } 5988 break; 5989 5990 case 178: 5991 5992 /* Line 1806 of yacc.c */ 5993 #line 780 "parser.yy" 6095 5994 { (yyval.sn) = 0; } 6096 5995 break; 6097 5996 6098 case 175: 6099 6100 /* Line 1806 of yacc.c */ 6101 #line 772 "parser.yy" 6102 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6103 break; 6104 6105 case 176: 6106 6107 /* Line 1806 of yacc.c */ 6108 #line 774 "parser.yy" 6109 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); } 6110 break; 6111 6112 case 177: 6113 6114 /* Line 1806 of yacc.c */ 6115 #line 776 "parser.yy" 6116 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 6117 break; 6118 6119 case 178: 6120 6121 /* Line 1806 of yacc.c */ 6122 #line 778 "parser.yy" 6123 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); } 6124 break; 6125 6126 case 179: 6127 6128 /* Line 1806 of yacc.c */ 6129 #line 783 "parser.yy" 6130 { (yyval.sn) = 0; } 5997 case 180: 5998 5999 /* Line 1806 of yacc.c */ 6000 #line 785 "parser.yy" 6001 { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); } 6131 6002 break; 6132 6003 … … 6134 6005 6135 6006 /* Line 1806 of yacc.c */ 6136 #line 78 8"parser.yy"6007 #line 786 "parser.yy" 6137 6008 { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); } 6138 6009 break; … … 6141 6012 6142 6013 /* Line 1806 of yacc.c */ 6143 #line 7 89"parser.yy"6144 { (yyval.sn) = new StatementNode( StatementNode:: Fallthru); }6014 #line 791 "parser.yy" 6015 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6145 6016 break; 6146 6017 … … 6148 6019 6149 6020 /* Line 1806 of yacc.c */ 6150 #line 79 4"parser.yy"6151 { (yyval.sn) = new StatementNode( StatementNode:: While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }6021 #line 793 "parser.yy" 6022 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); } 6152 6023 break; 6153 6024 … … 6155 6026 6156 6027 /* Line 1806 of yacc.c */ 6157 #line 79 6"parser.yy"6158 { (yyval.sn) = new StatementNode( StatementNode:: Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }6028 #line 795 "parser.yy" 6029 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); } 6159 6030 break; 6160 6031 … … 6162 6033 6163 6034 /* Line 1806 of yacc.c */ 6164 #line 798"parser.yy"6165 { (yyval. sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }6035 #line 800 "parser.yy" 6036 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 6166 6037 break; 6167 6038 … … 6169 6040 6170 6041 /* Line 1806 of yacc.c */ 6171 #line 80 3"parser.yy"6172 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - ( 6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }6042 #line 802 "parser.yy" 6043 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 6173 6044 break; 6174 6045 … … 6176 6047 6177 6048 /* Line 1806 of yacc.c */ 6178 #line 80 5"parser.yy"6179 { (yyval. en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }6049 #line 807 "parser.yy" 6050 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); } 6180 6051 break; 6181 6052 … … 6183 6054 6184 6055 /* Line 1806 of yacc.c */ 6185 #line 81 0"parser.yy"6186 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[( 2) - (3)].tok) ); }6056 #line 811 "parser.yy" 6057 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 6187 6058 break; 6188 6059 … … 6191 6062 /* Line 1806 of yacc.c */ 6192 6063 #line 814 "parser.yy" 6193 { (yyval.sn) = new StatementNode( StatementNode:: Goto, (yyvsp[(3) - (4)].en)); }6064 { (yyval.sn) = new StatementNode( StatementNode::Continue ); } 6194 6065 break; 6195 6066 … … 6197 6068 6198 6069 /* Line 1806 of yacc.c */ 6199 #line 81 7"parser.yy"6200 { (yyval.sn) = new StatementNode( StatementNode::Continue ); }6070 #line 818 "parser.yy" 6071 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); } 6201 6072 break; 6202 6073 … … 6205 6076 /* Line 1806 of yacc.c */ 6206 6077 #line 821 "parser.yy" 6207 { (yyval.sn) = new StatementNode( StatementNode:: Continue, (yyvsp[(2) - (3)].tok)); }6078 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 6208 6079 break; 6209 6080 … … 6211 6082 6212 6083 /* Line 1806 of yacc.c */ 6213 #line 82 4"parser.yy"6214 { (yyval.sn) = new StatementNode( StatementNode::Break ); }6084 #line 825 "parser.yy" 6085 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); } 6215 6086 break; 6216 6087 … … 6218 6089 6219 6090 /* Line 1806 of yacc.c */ 6220 #line 82 8"parser.yy"6221 { (yyval.sn) = new StatementNode( StatementNode:: Break, (yyvsp[(2) - (3)].tok)); }6091 #line 827 "parser.yy" 6092 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); } 6222 6093 break; 6223 6094 … … 6225 6096 6226 6097 /* Line 1806 of yacc.c */ 6227 #line 8 30"parser.yy"6228 { (yyval.sn) = new StatementNode( StatementNode:: Return, (yyvsp[(2) - (3)].en), 0 ); }6098 #line 829 "parser.yy" 6099 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6229 6100 break; 6230 6101 … … 6232 6103 6233 6104 /* Line 1806 of yacc.c */ 6234 #line 83 2"parser.yy"6105 #line 833 "parser.yy" 6235 6106 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6236 6107 break; … … 6239 6110 6240 6111 /* Line 1806 of yacc.c */ 6241 #line 83 6"parser.yy"6242 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - ( 3)].en), 0 ); }6112 #line 835 "parser.yy" 6113 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); } 6243 6114 break; 6244 6115 … … 6246 6117 6247 6118 /* Line 1806 of yacc.c */ 6248 #line 8 38"parser.yy"6249 { (yyval.sn) = new StatementNode( StatementNode::T hrow, (yyvsp[(2) - (5)].en), 0); }6119 #line 842 "parser.yy" 6120 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6250 6121 break; 6251 6122 … … 6253 6124 6254 6125 /* Line 1806 of yacc.c */ 6255 #line 84 5"parser.yy"6126 #line 844 "parser.yy" 6256 6127 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6257 6128 break; … … 6260 6131 6261 6132 /* Line 1806 of yacc.c */ 6262 #line 847 "parser.yy" 6263 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6264 break; 6265 6266 case 200: 6267 6268 /* Line 1806 of yacc.c */ 6269 #line 849 "parser.yy" 6133 #line 846 "parser.yy" 6270 6134 { 6271 6135 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) ); … … 6274 6138 break; 6275 6139 6140 case 201: 6141 6142 /* Line 1806 of yacc.c */ 6143 #line 857 "parser.yy" 6144 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6145 break; 6146 6276 6147 case 202: 6277 6148 6278 6149 /* Line 1806 of yacc.c */ 6279 #line 860 "parser.yy" 6150 #line 859 "parser.yy" 6151 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6152 break; 6153 6154 case 203: 6155 6156 /* Line 1806 of yacc.c */ 6157 #line 861 "parser.yy" 6280 6158 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6281 6159 break; 6282 6160 6283 case 20 3:6284 6285 /* Line 1806 of yacc.c */ 6286 #line 86 2"parser.yy"6161 case 204: 6162 6163 /* Line 1806 of yacc.c */ 6164 #line 863 "parser.yy" 6287 6165 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6288 6166 break; 6289 6167 6290 case 204:6291 6292 /* Line 1806 of yacc.c */6293 #line 864 "parser.yy"6294 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }6295 break;6296 6297 6168 case 205: 6298 6169 6299 6170 /* Line 1806 of yacc.c */ 6300 #line 86 6"parser.yy"6301 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true) ); }6171 #line 868 "parser.yy" 6172 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6302 6173 break; 6303 6174 … … 6305 6176 6306 6177 /* Line 1806 of yacc.c */ 6307 #line 871 "parser.yy" 6178 #line 870 "parser.yy" 6179 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6180 break; 6181 6182 case 207: 6183 6184 /* Line 1806 of yacc.c */ 6185 #line 872 "parser.yy" 6308 6186 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6309 6187 break; 6310 6188 6311 case 20 7:6312 6313 /* Line 1806 of yacc.c */ 6314 #line 87 3"parser.yy"6189 case 208: 6190 6191 /* Line 1806 of yacc.c */ 6192 #line 874 "parser.yy" 6315 6193 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6316 6194 break; 6317 6195 6318 case 208:6319 6320 /* Line 1806 of yacc.c */6321 #line 875 "parser.yy"6322 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }6323 break;6324 6325 6196 case 209: 6326 6197 6327 6198 /* Line 1806 of yacc.c */ 6328 #line 877 "parser.yy" 6329 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6330 break; 6331 6332 case 210: 6333 6334 /* Line 1806 of yacc.c */ 6335 #line 882 "parser.yy" 6199 #line 879 "parser.yy" 6336 6200 { 6337 6201 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) ); … … 6340 6204 break; 6341 6205 6342 case 21 2:6343 6344 /* Line 1806 of yacc.c */ 6345 #line 89 6"parser.yy"6206 case 211: 6207 6208 /* Line 1806 of yacc.c */ 6209 #line 893 "parser.yy" 6346 6210 { 6347 6211 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6350 6214 break; 6351 6215 6216 case 212: 6217 6218 /* Line 1806 of yacc.c */ 6219 #line 898 "parser.yy" 6220 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6221 break; 6222 6352 6223 case 213: 6353 6224 6354 6225 /* Line 1806 of yacc.c */ 6355 #line 901 "parser.yy" 6356 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6357 break; 6358 6359 case 214: 6360 6361 /* Line 1806 of yacc.c */ 6362 #line 903 "parser.yy" 6226 #line 900 "parser.yy" 6363 6227 { 6364 6228 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6367 6231 break; 6368 6232 6233 case 215: 6234 6235 /* Line 1806 of yacc.c */ 6236 #line 909 "parser.yy" 6237 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); } 6238 break; 6239 6369 6240 case 216: 6370 6241 6371 6242 /* Line 1806 of yacc.c */ 6372 #line 91 2"parser.yy"6373 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - ( 6)].flag), (yyvsp[(4) - (6)].constant), 0); }6243 #line 911 "parser.yy" 6244 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); } 6374 6245 break; 6375 6246 … … 6377 6248 6378 6249 /* Line 1806 of yacc.c */ 6379 #line 91 4"parser.yy"6380 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - ( 8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }6250 #line 913 "parser.yy" 6251 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); } 6381 6252 break; 6382 6253 … … 6384 6255 6385 6256 /* Line 1806 of yacc.c */ 6386 #line 91 6"parser.yy"6387 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (1 0)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }6257 #line 915 "parser.yy" 6258 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); } 6388 6259 break; 6389 6260 … … 6391 6262 6392 6263 /* Line 1806 of yacc.c */ 6393 #line 91 8"parser.yy"6394 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (1 2)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }6264 #line 917 "parser.yy" 6265 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); } 6395 6266 break; 6396 6267 … … 6398 6269 6399 6270 /* Line 1806 of yacc.c */ 6400 #line 92 0"parser.yy"6401 { (yyval. sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }6271 #line 922 "parser.yy" 6272 { (yyval.flag) = false; } 6402 6273 break; 6403 6274 … … 6405 6276 6406 6277 /* Line 1806 of yacc.c */ 6407 #line 92 5"parser.yy"6408 { (yyval.flag) = false; }6278 #line 924 "parser.yy" 6279 { (yyval.flag) = true; } 6409 6280 break; 6410 6281 … … 6412 6283 6413 6284 /* Line 1806 of yacc.c */ 6414 #line 927 "parser.yy" 6415 { (yyval.flag) = true; } 6416 break; 6417 6418 case 223: 6419 6420 /* Line 1806 of yacc.c */ 6421 #line 932 "parser.yy" 6285 #line 929 "parser.yy" 6422 6286 { (yyval.en) = 0; } 6423 6287 break; 6424 6288 6289 case 225: 6290 6291 /* Line 1806 of yacc.c */ 6292 #line 936 "parser.yy" 6293 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 6294 break; 6295 6425 6296 case 226: 6426 6297 6427 6298 /* Line 1806 of yacc.c */ 6428 #line 9 39"parser.yy"6429 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }6299 #line 941 "parser.yy" 6300 { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); } 6430 6301 break; 6431 6302 … … 6433 6304 6434 6305 /* Line 1806 of yacc.c */ 6435 #line 94 4"parser.yy"6436 { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }6306 #line 943 "parser.yy" 6307 { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); } 6437 6308 break; 6438 6309 … … 6440 6311 6441 6312 /* Line 1806 of yacc.c */ 6442 #line 94 6"parser.yy"6443 { (yyval. en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }6313 #line 948 "parser.yy" 6314 { (yyval.constant) = 0; } 6444 6315 break; 6445 6316 … … 6447 6318 6448 6319 /* Line 1806 of yacc.c */ 6449 #line 95 1"parser.yy"6450 { (yyval.constant) = 0; }6320 #line 950 "parser.yy" 6321 { (yyval.constant) = (yyvsp[(1) - (1)].constant); } 6451 6322 break; 6452 6323 … … 6454 6325 6455 6326 /* Line 1806 of yacc.c */ 6456 #line 95 3"parser.yy"6457 { (yyval.constant) = ( yyvsp[(1) - (1)].constant); }6327 #line 952 "parser.yy" 6328 { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); } 6458 6329 break; 6459 6330 … … 6461 6332 6462 6333 /* Line 1806 of yacc.c */ 6463 #line 95 5"parser.yy"6464 { (yyval. constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }6334 #line 957 "parser.yy" 6335 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6465 6336 break; 6466 6337 … … 6468 6339 6469 6340 /* Line 1806 of yacc.c */ 6470 #line 9 60"parser.yy"6471 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }6341 #line 959 "parser.yy" 6342 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6472 6343 break; 6473 6344 … … 6475 6346 6476 6347 /* Line 1806 of yacc.c */ 6477 #line 962 "parser.yy" 6478 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6479 break; 6480 6481 case 234: 6482 6483 /* Line 1806 of yacc.c */ 6484 #line 969 "parser.yy" 6348 #line 966 "parser.yy" 6485 6349 { (yyval.decl) = 0; } 6486 6350 break; 6487 6351 6352 case 236: 6353 6354 /* Line 1806 of yacc.c */ 6355 #line 973 "parser.yy" 6356 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6357 break; 6358 6488 6359 case 237: 6489 6360 6490 6361 /* Line 1806 of yacc.c */ 6491 #line 976 "parser.yy" 6362 #line 978 "parser.yy" 6363 { (yyval.decl) = 0; } 6364 break; 6365 6366 case 240: 6367 6368 /* Line 1806 of yacc.c */ 6369 #line 985 "parser.yy" 6492 6370 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6493 6371 break; 6494 6372 6495 case 238: 6496 6497 /* Line 1806 of yacc.c */ 6498 #line 981 "parser.yy" 6499 { (yyval.decl) = 0; } 6500 break; 6501 6502 case 241: 6503 6504 /* Line 1806 of yacc.c */ 6505 #line 988 "parser.yy" 6506 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6373 case 245: 6374 6375 /* Line 1806 of yacc.c */ 6376 #line 999 "parser.yy" 6377 {} 6507 6378 break; 6508 6379 … … 6510 6381 6511 6382 /* Line 1806 of yacc.c */ 6512 #line 100 2"parser.yy"6383 #line 1000 "parser.yy" 6513 6384 {} 6514 6385 break; 6515 6386 6516 case 247: 6517 6518 /* Line 1806 of yacc.c */ 6519 #line 1003 "parser.yy" 6520 {} 6521 break; 6522 6523 case 255: 6524 6525 /* Line 1806 of yacc.c */ 6526 #line 1032 "parser.yy" 6387 case 254: 6388 6389 /* Line 1806 of yacc.c */ 6390 #line 1029 "parser.yy" 6527 6391 { 6528 6392 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6531 6395 break; 6532 6396 6533 case 25 6:6534 6535 /* Line 1806 of yacc.c */ 6536 #line 103 9"parser.yy"6397 case 255: 6398 6399 /* Line 1806 of yacc.c */ 6400 #line 1036 "parser.yy" 6537 6401 { 6538 6402 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6541 6405 break; 6542 6406 6543 case 25 7:6544 6545 /* Line 1806 of yacc.c */ 6546 #line 104 4"parser.yy"6407 case 256: 6408 6409 /* Line 1806 of yacc.c */ 6410 #line 1041 "parser.yy" 6547 6411 { 6548 6412 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6551 6415 break; 6552 6416 6553 case 25 8:6554 6555 /* Line 1806 of yacc.c */ 6556 #line 105 4"parser.yy"6417 case 257: 6418 6419 /* Line 1806 of yacc.c */ 6420 #line 1051 "parser.yy" 6557 6421 { 6558 6422 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6561 6425 break; 6562 6426 6563 case 25 9:6564 6565 /* Line 1806 of yacc.c */ 6566 #line 105 9"parser.yy"6427 case 258: 6428 6429 /* Line 1806 of yacc.c */ 6430 #line 1056 "parser.yy" 6567 6431 { 6568 6432 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6571 6435 break; 6572 6436 6573 case 2 60:6574 6575 /* Line 1806 of yacc.c */ 6576 #line 106 4"parser.yy"6437 case 259: 6438 6439 /* Line 1806 of yacc.c */ 6440 #line 1061 "parser.yy" 6577 6441 { 6578 6442 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6581 6445 break; 6582 6446 6583 case 26 1:6584 6585 /* Line 1806 of yacc.c */ 6586 #line 10 72"parser.yy"6447 case 260: 6448 6449 /* Line 1806 of yacc.c */ 6450 #line 1069 "parser.yy" 6587 6451 { 6588 6452 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6591 6455 break; 6592 6456 6593 case 26 2:6594 6595 /* Line 1806 of yacc.c */ 6596 #line 107 7"parser.yy"6457 case 261: 6458 6459 /* Line 1806 of yacc.c */ 6460 #line 1074 "parser.yy" 6597 6461 { 6598 6462 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6601 6465 break; 6602 6466 6603 case 26 3:6604 6605 /* Line 1806 of yacc.c */ 6606 #line 10 82"parser.yy"6467 case 262: 6468 6469 /* Line 1806 of yacc.c */ 6470 #line 1079 "parser.yy" 6607 6471 { 6608 6472 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6611 6475 break; 6612 6476 6613 case 26 4:6614 6615 /* Line 1806 of yacc.c */ 6616 #line 108 7"parser.yy"6477 case 263: 6478 6479 /* Line 1806 of yacc.c */ 6480 #line 1084 "parser.yy" 6617 6481 { 6618 6482 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6621 6485 break; 6622 6486 6623 case 26 5:6624 6625 /* Line 1806 of yacc.c */ 6626 #line 10 92"parser.yy"6487 case 264: 6488 6489 /* Line 1806 of yacc.c */ 6490 #line 1089 "parser.yy" 6627 6491 { 6628 6492 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6631 6495 break; 6632 6496 6633 case 26 6:6634 6635 /* Line 1806 of yacc.c */ 6636 #line 1 100"parser.yy"6497 case 265: 6498 6499 /* Line 1806 of yacc.c */ 6500 #line 1097 "parser.yy" 6637 6501 { 6638 6502 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6640 6504 break; 6641 6505 6642 case 26 7:6643 6644 /* Line 1806 of yacc.c */ 6645 #line 112 3"parser.yy"6506 case 266: 6507 6508 /* Line 1806 of yacc.c */ 6509 #line 1120 "parser.yy" 6646 6510 { 6647 6511 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6649 6513 break; 6650 6514 6651 case 26 8:6652 6653 /* Line 1806 of yacc.c */ 6654 #line 112 7"parser.yy"6515 case 267: 6516 6517 /* Line 1806 of yacc.c */ 6518 #line 1124 "parser.yy" 6655 6519 { 6656 6520 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6658 6522 break; 6659 6523 6524 case 268: 6525 6526 /* Line 1806 of yacc.c */ 6527 #line 1131 "parser.yy" 6528 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6529 break; 6530 6660 6531 case 269: 6661 6532 6662 6533 /* Line 1806 of yacc.c */ 6663 #line 113 4"parser.yy"6664 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - ( 5)].decl) ); }6534 #line 1135 "parser.yy" 6535 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6665 6536 break; 6666 6537 … … 6668 6539 6669 6540 /* Line 1806 of yacc.c */ 6670 #line 1138 "parser.yy" 6671 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6672 break; 6673 6674 case 271: 6675 6676 /* Line 1806 of yacc.c */ 6677 #line 1143 "parser.yy" 6541 #line 1140 "parser.yy" 6678 6542 { 6679 6543 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6682 6546 break; 6683 6547 6684 case 27 2:6685 6686 /* Line 1806 of yacc.c */ 6687 #line 114 8"parser.yy"6548 case 271: 6549 6550 /* Line 1806 of yacc.c */ 6551 #line 1145 "parser.yy" 6688 6552 { 6689 6553 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6692 6556 break; 6693 6557 6694 case 27 3:6695 6696 /* Line 1806 of yacc.c */ 6697 #line 115 3"parser.yy"6558 case 272: 6559 6560 /* Line 1806 of yacc.c */ 6561 #line 1150 "parser.yy" 6698 6562 { 6699 6563 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6702 6566 break; 6703 6567 6704 case 27 4:6705 6706 /* Line 1806 of yacc.c */ 6707 #line 116 4"parser.yy"6568 case 273: 6569 6570 /* Line 1806 of yacc.c */ 6571 #line 1161 "parser.yy" 6708 6572 { 6709 6573 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6712 6576 break; 6713 6577 6714 case 27 5:6715 6716 /* Line 1806 of yacc.c */ 6717 #line 116 9"parser.yy"6578 case 274: 6579 6580 /* Line 1806 of yacc.c */ 6581 #line 1166 "parser.yy" 6718 6582 { 6719 6583 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6722 6586 break; 6723 6587 6724 case 27 6:6725 6726 /* Line 1806 of yacc.c */ 6727 #line 117 4"parser.yy"6588 case 275: 6589 6590 /* Line 1806 of yacc.c */ 6591 #line 1171 "parser.yy" 6728 6592 { 6729 6593 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6732 6596 break; 6733 6597 6734 case 27 7:6735 6736 /* Line 1806 of yacc.c */ 6737 #line 117 9"parser.yy"6598 case 276: 6599 6600 /* Line 1806 of yacc.c */ 6601 #line 1176 "parser.yy" 6738 6602 { 6739 6603 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6742 6606 break; 6743 6607 6744 case 27 8:6745 6746 /* Line 1806 of yacc.c */ 6747 #line 118 4"parser.yy"6608 case 277: 6609 6610 /* Line 1806 of yacc.c */ 6611 #line 1181 "parser.yy" 6748 6612 { 6749 6613 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6752 6616 break; 6753 6617 6754 case 27 9:6755 6756 /* Line 1806 of yacc.c */ 6757 #line 119 3"parser.yy"6618 case 278: 6619 6620 /* Line 1806 of yacc.c */ 6621 #line 1190 "parser.yy" 6758 6622 { 6759 6623 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6762 6626 break; 6763 6627 6764 case 2 80:6765 6766 /* Line 1806 of yacc.c */ 6767 #line 119 8"parser.yy"6628 case 279: 6629 6630 /* Line 1806 of yacc.c */ 6631 #line 1195 "parser.yy" 6768 6632 { 6769 6633 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6772 6636 break; 6773 6637 6774 case 28 5:6775 6776 /* Line 1806 of yacc.c */ 6777 #line 121 5"parser.yy"6638 case 284: 6639 6640 /* Line 1806 of yacc.c */ 6641 #line 1212 "parser.yy" 6778 6642 { 6779 6643 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6782 6646 break; 6783 6647 6784 case 28 6:6785 6786 /* Line 1806 of yacc.c */ 6787 #line 12 20"parser.yy"6648 case 285: 6649 6650 /* Line 1806 of yacc.c */ 6651 #line 1217 "parser.yy" 6788 6652 { 6789 6653 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6792 6656 break; 6793 6657 6794 case 29 5:6795 6796 /* Line 1806 of yacc.c */ 6797 #line 12 42"parser.yy"6658 case 294: 6659 6660 /* Line 1806 of yacc.c */ 6661 #line 1239 "parser.yy" 6798 6662 { (yyval.decl) = 0; } 6799 6663 break; 6800 6664 6801 case 29 8:6802 6803 /* Line 1806 of yacc.c */ 6804 #line 125 4"parser.yy"6665 case 297: 6666 6667 /* Line 1806 of yacc.c */ 6668 #line 1251 "parser.yy" 6805 6669 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6806 6670 break; 6807 6671 6672 case 300: 6673 6674 /* Line 1806 of yacc.c */ 6675 #line 1262 "parser.yy" 6676 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6677 break; 6678 6808 6679 case 301: 6809 6680 6810 6681 /* Line 1806 of yacc.c */ 6811 #line 126 5"parser.yy"6812 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Const ); }6682 #line 1264 "parser.yy" 6683 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6813 6684 break; 6814 6685 … … 6816 6687 6817 6688 /* Line 1806 of yacc.c */ 6818 #line 126 7"parser.yy"6819 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Restrict); }6689 #line 1266 "parser.yy" 6690 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6820 6691 break; 6821 6692 … … 6823 6694 6824 6695 /* Line 1806 of yacc.c */ 6825 #line 126 9"parser.yy"6826 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Volatile ); }6696 #line 1268 "parser.yy" 6697 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6827 6698 break; 6828 6699 … … 6830 6701 6831 6702 /* Line 1806 of yacc.c */ 6832 #line 127 1"parser.yy"6833 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Lvalue); }6703 #line 1270 "parser.yy" 6704 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6834 6705 break; 6835 6706 … … 6837 6708 6838 6709 /* Line 1806 of yacc.c */ 6839 #line 1273 "parser.yy" 6840 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6841 break; 6842 6843 case 306: 6844 6845 /* Line 1806 of yacc.c */ 6846 #line 1275 "parser.yy" 6710 #line 1272 "parser.yy" 6847 6711 { 6848 6712 typedefTable.enterScope(); … … 6850 6714 break; 6851 6715 6852 case 30 7:6853 6854 /* Line 1806 of yacc.c */ 6855 #line 127 9"parser.yy"6716 case 306: 6717 6718 /* Line 1806 of yacc.c */ 6719 #line 1276 "parser.yy" 6856 6720 { 6857 6721 typedefTable.leaveScope(); … … 6860 6724 break; 6861 6725 6726 case 308: 6727 6728 /* Line 1806 of yacc.c */ 6729 #line 1285 "parser.yy" 6730 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6731 break; 6732 6862 6733 case 309: 6863 6734 6864 6735 /* Line 1806 of yacc.c */ 6865 #line 1288 "parser.yy" 6736 #line 1287 "parser.yy" 6737 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6738 break; 6739 6740 case 311: 6741 6742 /* Line 1806 of yacc.c */ 6743 #line 1298 "parser.yy" 6866 6744 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6867 6745 break; 6868 6746 6869 case 310: 6870 6871 /* Line 1806 of yacc.c */ 6872 #line 1290 "parser.yy" 6747 case 313: 6748 6749 /* Line 1806 of yacc.c */ 6750 #line 1307 "parser.yy" 6751 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6752 break; 6753 6754 case 314: 6755 6756 /* Line 1806 of yacc.c */ 6757 #line 1309 "parser.yy" 6758 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6759 break; 6760 6761 case 315: 6762 6763 /* Line 1806 of yacc.c */ 6764 #line 1311 "parser.yy" 6765 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6766 break; 6767 6768 case 316: 6769 6770 /* Line 1806 of yacc.c */ 6771 #line 1313 "parser.yy" 6772 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6773 break; 6774 6775 case 317: 6776 6777 /* Line 1806 of yacc.c */ 6778 #line 1315 "parser.yy" 6779 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6780 break; 6781 6782 case 318: 6783 6784 /* Line 1806 of yacc.c */ 6785 #line 1317 "parser.yy" 6786 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6787 break; 6788 6789 case 319: 6790 6791 /* Line 1806 of yacc.c */ 6792 #line 1319 "parser.yy" 6793 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6794 break; 6795 6796 case 320: 6797 6798 /* Line 1806 of yacc.c */ 6799 #line 1321 "parser.yy" 6800 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6801 break; 6802 6803 case 321: 6804 6805 /* Line 1806 of yacc.c */ 6806 #line 1326 "parser.yy" 6807 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6808 break; 6809 6810 case 322: 6811 6812 /* Line 1806 of yacc.c */ 6813 #line 1328 "parser.yy" 6814 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6815 break; 6816 6817 case 323: 6818 6819 /* Line 1806 of yacc.c */ 6820 #line 1330 "parser.yy" 6821 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6822 break; 6823 6824 case 324: 6825 6826 /* Line 1806 of yacc.c */ 6827 #line 1332 "parser.yy" 6828 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6829 break; 6830 6831 case 325: 6832 6833 /* Line 1806 of yacc.c */ 6834 #line 1334 "parser.yy" 6835 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6836 break; 6837 6838 case 326: 6839 6840 /* Line 1806 of yacc.c */ 6841 #line 1336 "parser.yy" 6842 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6843 break; 6844 6845 case 327: 6846 6847 /* Line 1806 of yacc.c */ 6848 #line 1338 "parser.yy" 6849 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6850 break; 6851 6852 case 328: 6853 6854 /* Line 1806 of yacc.c */ 6855 #line 1340 "parser.yy" 6856 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6857 break; 6858 6859 case 329: 6860 6861 /* Line 1806 of yacc.c */ 6862 #line 1342 "parser.yy" 6863 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6864 break; 6865 6866 case 330: 6867 6868 /* Line 1806 of yacc.c */ 6869 #line 1344 "parser.yy" 6870 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6871 break; 6872 6873 case 331: 6874 6875 /* Line 1806 of yacc.c */ 6876 #line 1346 "parser.yy" 6877 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6878 break; 6879 6880 case 332: 6881 6882 /* Line 1806 of yacc.c */ 6883 #line 1348 "parser.yy" 6884 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6885 break; 6886 6887 case 333: 6888 6889 /* Line 1806 of yacc.c */ 6890 #line 1350 "parser.yy" 6891 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6892 break; 6893 6894 case 335: 6895 6896 /* Line 1806 of yacc.c */ 6897 #line 1357 "parser.yy" 6898 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6899 break; 6900 6901 case 336: 6902 6903 /* Line 1806 of yacc.c */ 6904 #line 1359 "parser.yy" 6905 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6906 break; 6907 6908 case 337: 6909 6910 /* Line 1806 of yacc.c */ 6911 #line 1361 "parser.yy" 6873 6912 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6874 6913 break; 6875 6914 6876 case 312: 6877 6878 /* Line 1806 of yacc.c */ 6879 #line 1301 "parser.yy" 6915 case 338: 6916 6917 /* Line 1806 of yacc.c */ 6918 #line 1363 "parser.yy" 6919 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6920 break; 6921 6922 case 340: 6923 6924 /* Line 1806 of yacc.c */ 6925 #line 1369 "parser.yy" 6926 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6927 break; 6928 6929 case 342: 6930 6931 /* Line 1806 of yacc.c */ 6932 #line 1376 "parser.yy" 6933 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6934 break; 6935 6936 case 343: 6937 6938 /* Line 1806 of yacc.c */ 6939 #line 1378 "parser.yy" 6880 6940 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6881 6941 break; 6882 6942 6883 case 314: 6884 6885 /* Line 1806 of yacc.c */ 6886 #line 1310 "parser.yy" 6887 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6888 break; 6889 6890 case 315: 6891 6892 /* Line 1806 of yacc.c */ 6893 #line 1312 "parser.yy" 6894 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6895 break; 6896 6897 case 316: 6898 6899 /* Line 1806 of yacc.c */ 6900 #line 1314 "parser.yy" 6901 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6902 break; 6903 6904 case 317: 6905 6906 /* Line 1806 of yacc.c */ 6907 #line 1316 "parser.yy" 6908 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6909 break; 6910 6911 case 318: 6912 6913 /* Line 1806 of yacc.c */ 6914 #line 1318 "parser.yy" 6915 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6916 break; 6917 6918 case 319: 6919 6920 /* Line 1806 of yacc.c */ 6921 #line 1320 "parser.yy" 6922 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6923 break; 6924 6925 case 320: 6926 6927 /* Line 1806 of yacc.c */ 6928 #line 1322 "parser.yy" 6929 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6930 break; 6931 6932 case 321: 6933 6934 /* Line 1806 of yacc.c */ 6935 #line 1324 "parser.yy" 6936 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6937 break; 6938 6939 case 322: 6940 6941 /* Line 1806 of yacc.c */ 6942 #line 1329 "parser.yy" 6943 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6944 break; 6945 6946 case 323: 6947 6948 /* Line 1806 of yacc.c */ 6949 #line 1331 "parser.yy" 6950 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6951 break; 6952 6953 case 324: 6954 6955 /* Line 1806 of yacc.c */ 6956 #line 1333 "parser.yy" 6957 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6958 break; 6959 6960 case 325: 6961 6962 /* Line 1806 of yacc.c */ 6963 #line 1335 "parser.yy" 6964 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6965 break; 6966 6967 case 326: 6968 6969 /* Line 1806 of yacc.c */ 6970 #line 1337 "parser.yy" 6971 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6972 break; 6973 6974 case 327: 6975 6976 /* Line 1806 of yacc.c */ 6977 #line 1339 "parser.yy" 6978 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6979 break; 6980 6981 case 328: 6982 6983 /* Line 1806 of yacc.c */ 6984 #line 1341 "parser.yy" 6985 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6986 break; 6987 6988 case 329: 6989 6990 /* Line 1806 of yacc.c */ 6991 #line 1343 "parser.yy" 6992 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6993 break; 6994 6995 case 330: 6996 6997 /* Line 1806 of yacc.c */ 6998 #line 1345 "parser.yy" 6999 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 7000 break; 7001 7002 case 331: 7003 7004 /* Line 1806 of yacc.c */ 7005 #line 1347 "parser.yy" 7006 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 7007 break; 7008 7009 case 332: 7010 7011 /* Line 1806 of yacc.c */ 7012 #line 1349 "parser.yy" 7013 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 7014 break; 7015 7016 case 333: 7017 7018 /* Line 1806 of yacc.c */ 7019 #line 1351 "parser.yy" 7020 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 7021 break; 7022 7023 case 334: 7024 7025 /* Line 1806 of yacc.c */ 7026 #line 1353 "parser.yy" 7027 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 7028 break; 7029 7030 case 336: 7031 7032 /* Line 1806 of yacc.c */ 7033 #line 1360 "parser.yy" 6943 case 344: 6944 6945 /* Line 1806 of yacc.c */ 6946 #line 1380 "parser.yy" 6947 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6948 break; 6949 6950 case 345: 6951 6952 /* Line 1806 of yacc.c */ 6953 #line 1385 "parser.yy" 6954 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6955 break; 6956 6957 case 346: 6958 6959 /* Line 1806 of yacc.c */ 6960 #line 1387 "parser.yy" 6961 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6962 break; 6963 6964 case 347: 6965 6966 /* Line 1806 of yacc.c */ 6967 #line 1389 "parser.yy" 6968 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6969 break; 6970 6971 case 348: 6972 6973 /* Line 1806 of yacc.c */ 6974 #line 1391 "parser.yy" 6975 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6976 break; 6977 6978 case 350: 6979 6980 /* Line 1806 of yacc.c */ 6981 #line 1397 "parser.yy" 7034 6982 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7035 6983 break; 7036 6984 7037 case 3 37:7038 7039 /* Line 1806 of yacc.c */ 7040 #line 13 62"parser.yy"6985 case 351: 6986 6987 /* Line 1806 of yacc.c */ 6988 #line 1399 "parser.yy" 7041 6989 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7042 6990 break; 7043 6991 7044 case 3 38:7045 7046 /* Line 1806 of yacc.c */ 7047 #line 1 364"parser.yy"6992 case 352: 6993 6994 /* Line 1806 of yacc.c */ 6995 #line 1401 "parser.yy" 7048 6996 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7049 6997 break; 7050 6998 7051 case 339: 7052 7053 /* Line 1806 of yacc.c */ 7054 #line 1366 "parser.yy" 7055 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 7056 break; 7057 7058 case 341: 7059 7060 /* Line 1806 of yacc.c */ 7061 #line 1372 "parser.yy" 7062 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7063 break; 7064 7065 case 343: 7066 7067 /* Line 1806 of yacc.c */ 7068 #line 1379 "parser.yy" 6999 case 354: 7000 7001 /* Line 1806 of yacc.c */ 7002 #line 1407 "parser.yy" 7069 7003 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7070 7004 break; 7071 7005 7072 case 3 44:7073 7074 /* Line 1806 of yacc.c */ 7075 #line 1 381"parser.yy"7006 case 355: 7007 7008 /* Line 1806 of yacc.c */ 7009 #line 1409 "parser.yy" 7076 7010 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7077 7011 break; 7078 7012 7079 case 345: 7080 7081 /* Line 1806 of yacc.c */ 7082 #line 1383 "parser.yy" 7083 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 7084 break; 7085 7086 case 346: 7087 7088 /* Line 1806 of yacc.c */ 7089 #line 1388 "parser.yy" 7090 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 7091 break; 7092 7093 case 347: 7094 7095 /* Line 1806 of yacc.c */ 7096 #line 1390 "parser.yy" 7097 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 7098 break; 7099 7100 case 348: 7101 7102 /* Line 1806 of yacc.c */ 7103 #line 1392 "parser.yy" 7104 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 7105 break; 7106 7107 case 349: 7108 7109 /* Line 1806 of yacc.c */ 7110 #line 1394 "parser.yy" 7111 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7112 break; 7113 7114 case 351: 7115 7116 /* Line 1806 of yacc.c */ 7117 #line 1400 "parser.yy" 7013 case 357: 7014 7015 /* Line 1806 of yacc.c */ 7016 #line 1415 "parser.yy" 7118 7017 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7119 7018 break; 7120 7019 7121 case 35 2:7122 7123 /* Line 1806 of yacc.c */ 7124 #line 14 02"parser.yy"7020 case 358: 7021 7022 /* Line 1806 of yacc.c */ 7023 #line 1417 "parser.yy" 7125 7024 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7126 7025 break; 7127 7026 7128 case 35 3:7129 7130 /* Line 1806 of yacc.c */ 7131 #line 14 04"parser.yy"7027 case 359: 7028 7029 /* Line 1806 of yacc.c */ 7030 #line 1419 "parser.yy" 7132 7031 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7133 7032 break; 7134 7033 7135 case 355: 7136 7137 /* Line 1806 of yacc.c */ 7138 #line 1410 "parser.yy" 7139 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7140 break; 7141 7142 case 356: 7143 7144 /* Line 1806 of yacc.c */ 7145 #line 1412 "parser.yy" 7034 case 360: 7035 7036 /* Line 1806 of yacc.c */ 7037 #line 1424 "parser.yy" 7038 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 7039 break; 7040 7041 case 361: 7042 7043 /* Line 1806 of yacc.c */ 7044 #line 1426 "parser.yy" 7045 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7046 break; 7047 7048 case 362: 7049 7050 /* Line 1806 of yacc.c */ 7051 #line 1428 "parser.yy" 7146 7052 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7147 7053 break; 7148 7054 7149 case 358: 7150 7151 /* Line 1806 of yacc.c */ 7152 #line 1418 "parser.yy" 7153 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7154 break; 7155 7156 case 359: 7157 7158 /* Line 1806 of yacc.c */ 7159 #line 1420 "parser.yy" 7160 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7161 break; 7162 7163 case 360: 7164 7165 /* Line 1806 of yacc.c */ 7166 #line 1422 "parser.yy" 7167 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7168 break; 7169 7170 case 361: 7171 7172 /* Line 1806 of yacc.c */ 7173 #line 1427 "parser.yy" 7174 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 7175 break; 7176 7177 case 362: 7178 7179 /* Line 1806 of yacc.c */ 7180 #line 1429 "parser.yy" 7181 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7182 break; 7183 7184 case 363: 7185 7186 /* Line 1806 of yacc.c */ 7187 #line 1431 "parser.yy" 7188 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7055 case 365: 7056 7057 /* Line 1806 of yacc.c */ 7058 #line 1438 "parser.yy" 7059 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); } 7189 7060 break; 7190 7061 … … 7192 7063 7193 7064 /* Line 1806 of yacc.c */ 7194 #line 1441 "parser.yy" 7195 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); } 7196 break; 7197 7198 case 367: 7199 7200 /* Line 1806 of yacc.c */ 7201 #line 1443 "parser.yy" 7065 #line 1440 "parser.yy" 7202 7066 { 7203 7067 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7206 7070 break; 7207 7071 7072 case 367: 7073 7074 /* Line 1806 of yacc.c */ 7075 #line 1445 "parser.yy" 7076 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7077 break; 7078 7208 7079 case 368: 7209 7080 7210 7081 /* Line 1806 of yacc.c */ 7211 #line 144 8"parser.yy"7212 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok)); }7082 #line 1447 "parser.yy" 7083 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl)); } 7213 7084 break; 7214 7085 … … 7216 7087 7217 7088 /* Line 1806 of yacc.c */ 7218 #line 14 50"parser.yy"7219 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - ( 6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl)); }7089 #line 1449 "parser.yy" 7090 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); } 7220 7091 break; 7221 7092 … … 7223 7094 7224 7095 /* Line 1806 of yacc.c */ 7225 #line 145 2"parser.yy"7226 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl)); }7096 #line 1451 "parser.yy" 7097 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7227 7098 break; 7228 7099 … … 7230 7101 7231 7102 /* Line 1806 of yacc.c */ 7232 #line 145 4"parser.yy"7233 { (yyval. decl) = (yyvsp[(2) - (2)].decl); }7103 #line 1456 "parser.yy" 7104 { (yyval.aggKey) = DeclarationNode::Struct; } 7234 7105 break; 7235 7106 … … 7237 7108 7238 7109 /* Line 1806 of yacc.c */ 7239 #line 145 9"parser.yy"7240 { (yyval.aggKey) = DeclarationNode:: Struct; }7110 #line 1458 "parser.yy" 7111 { (yyval.aggKey) = DeclarationNode::Union; } 7241 7112 break; 7242 7113 … … 7244 7115 7245 7116 /* Line 1806 of yacc.c */ 7246 #line 146 1"parser.yy"7247 { (yyval. aggKey) = DeclarationNode::Union; }7117 #line 1463 "parser.yy" 7118 { (yyval.decl) = (yyvsp[(1) - (1)].decl); } 7248 7119 break; 7249 7120 … … 7251 7122 7252 7123 /* Line 1806 of yacc.c */ 7253 #line 1466 "parser.yy" 7254 { (yyval.decl) = (yyvsp[(1) - (1)].decl); } 7255 break; 7256 7257 case 375: 7258 7259 /* Line 1806 of yacc.c */ 7260 #line 1468 "parser.yy" 7124 #line 1465 "parser.yy" 7261 7125 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7262 7126 break; 7263 7127 7264 case 377: 7128 case 376: 7129 7130 /* Line 1806 of yacc.c */ 7131 #line 1471 "parser.yy" 7132 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7133 break; 7134 7135 case 378: 7265 7136 7266 7137 /* Line 1806 of yacc.c */ 7267 7138 #line 1474 "parser.yy" 7268 { (yyval.decl) = (yyvsp[(2) - (3)].decl) /*->set_extension( true )*/; }7269 break; 7270 7271 case 3 79:7272 7273 /* Line 1806 of yacc.c */ 7274 #line 14 77"parser.yy"7275 { (yyval.decl) = (yyvsp[( 2) - (3)].decl)/*->set_extension( true )*/; }7139 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7140 break; 7141 7142 case 380: 7143 7144 /* Line 1806 of yacc.c */ 7145 #line 1480 "parser.yy" 7146 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7276 7147 break; 7277 7148 … … 7279 7150 7280 7151 /* Line 1806 of yacc.c */ 7281 #line 148 3"parser.yy"7282 { (yyval.decl) = (yyvsp[(1) - ( 2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }7152 #line 1482 "parser.yy" 7153 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7283 7154 break; 7284 7155 … … 7286 7157 7287 7158 /* Line 1806 of yacc.c */ 7288 #line 148 5"parser.yy"7289 { (yyval.decl) = (yyvsp[(1) - ( 3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok)) ); }7159 #line 1484 "parser.yy" 7160 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7290 7161 break; 7291 7162 … … 7293 7164 7294 7165 /* Line 1806 of yacc.c */ 7295 #line 148 7"parser.yy"7296 { (yyval.decl) = (yyvsp[( 1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0) ); }7166 #line 1489 "parser.yy" 7167 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7297 7168 break; 7298 7169 … … 7300 7171 7301 7172 /* Line 1806 of yacc.c */ 7302 #line 149 2"parser.yy"7303 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7173 #line 1491 "parser.yy" 7174 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7304 7175 break; 7305 7176 … … 7307 7178 7308 7179 /* Line 1806 of yacc.c */ 7309 #line 149 4"parser.yy"7310 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) );}7180 #line 1496 "parser.yy" 7181 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7311 7182 break; 7312 7183 … … 7314 7185 7315 7186 /* Line 1806 of yacc.c */ 7316 #line 149 9"parser.yy"7317 { (yyval.decl) = DeclarationNode::new Name( 0 ); /* XXX */}7187 #line 1498 "parser.yy" 7188 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7318 7189 break; 7319 7190 … … 7322 7193 /* Line 1806 of yacc.c */ 7323 7194 #line 1501 "parser.yy" 7324 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }7195 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7325 7196 break; 7326 7197 … … 7332 7203 break; 7333 7204 7334 case 3 89:7335 7336 /* Line 1806 of yacc.c */ 7337 #line 15 07"parser.yy"7338 { (yyval. decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }7205 case 390: 7206 7207 /* Line 1806 of yacc.c */ 7208 #line 1510 "parser.yy" 7209 { (yyval.en) = 0; } 7339 7210 break; 7340 7211 … … 7342 7213 7343 7214 /* Line 1806 of yacc.c */ 7344 #line 151 3"parser.yy"7345 { (yyval.en) = 0; }7215 #line 1512 "parser.yy" 7216 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7346 7217 break; 7347 7218 … … 7349 7220 7350 7221 /* Line 1806 of yacc.c */ 7351 #line 1515 "parser.yy" 7352 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7353 break; 7354 7355 case 393: 7356 7357 /* Line 1806 of yacc.c */ 7358 #line 1520 "parser.yy" 7222 #line 1517 "parser.yy" 7359 7223 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7360 7224 break; 7361 7225 7226 case 394: 7227 7228 /* Line 1806 of yacc.c */ 7229 #line 1526 "parser.yy" 7230 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7231 break; 7232 7362 7233 case 395: 7363 7234 7364 7235 /* Line 1806 of yacc.c */ 7365 #line 1529 "parser.yy" 7366 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7367 break; 7368 7369 case 396: 7370 7371 /* Line 1806 of yacc.c */ 7372 #line 1531 "parser.yy" 7236 #line 1528 "parser.yy" 7373 7237 { 7374 7238 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7377 7241 break; 7378 7242 7243 case 396: 7244 7245 /* Line 1806 of yacc.c */ 7246 #line 1533 "parser.yy" 7247 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7248 break; 7249 7379 7250 case 397: 7380 7251 7381 7252 /* Line 1806 of yacc.c */ 7382 #line 153 6"parser.yy"7383 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }7253 #line 1535 "parser.yy" 7254 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7384 7255 break; 7385 7256 … … 7387 7258 7388 7259 /* Line 1806 of yacc.c */ 7389 #line 15 38"parser.yy"7390 { (yyval.decl) = DeclarationNode::newEnum ( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }7260 #line 1540 "parser.yy" 7261 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7391 7262 break; 7392 7263 … … 7394 7265 7395 7266 /* Line 1806 of yacc.c */ 7396 #line 154 3"parser.yy"7397 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }7267 #line 1542 "parser.yy" 7268 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7398 7269 break; 7399 7270 … … 7401 7272 7402 7273 /* Line 1806 of yacc.c */ 7403 #line 154 5"parser.yy"7404 { (yyval. decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }7274 #line 1547 "parser.yy" 7275 { (yyval.en) = 0; } 7405 7276 break; 7406 7277 … … 7408 7279 7409 7280 /* Line 1806 of yacc.c */ 7410 #line 15 50"parser.yy"7411 { (yyval.en) = 0; }7281 #line 1549 "parser.yy" 7282 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7412 7283 break; 7413 7284 … … 7415 7286 7416 7287 /* Line 1806 of yacc.c */ 7417 #line 1552 "parser.yy" 7418 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7419 break; 7420 7421 case 403: 7422 7423 /* Line 1806 of yacc.c */ 7424 #line 1559 "parser.yy" 7288 #line 1556 "parser.yy" 7425 7289 { (yyval.decl) = 0; } 7426 7290 break; 7427 7291 7292 case 406: 7293 7294 /* Line 1806 of yacc.c */ 7295 #line 1564 "parser.yy" 7296 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7297 break; 7298 7428 7299 case 407: 7429 7300 7430 7301 /* Line 1806 of yacc.c */ 7431 #line 1567 "parser.yy" 7302 #line 1566 "parser.yy" 7303 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7304 break; 7305 7306 case 408: 7307 7308 /* Line 1806 of yacc.c */ 7309 #line 1568 "parser.yy" 7310 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7311 break; 7312 7313 case 410: 7314 7315 /* Line 1806 of yacc.c */ 7316 #line 1576 "parser.yy" 7432 7317 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7433 7318 break; 7434 7319 7435 case 408: 7436 7437 /* Line 1806 of yacc.c */ 7438 #line 1569 "parser.yy" 7320 case 411: 7321 7322 /* Line 1806 of yacc.c */ 7323 #line 1578 "parser.yy" 7324 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7325 break; 7326 7327 case 412: 7328 7329 /* Line 1806 of yacc.c */ 7330 #line 1580 "parser.yy" 7331 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7332 break; 7333 7334 case 414: 7335 7336 /* Line 1806 of yacc.c */ 7337 #line 1586 "parser.yy" 7338 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7339 break; 7340 7341 case 415: 7342 7343 /* Line 1806 of yacc.c */ 7344 #line 1591 "parser.yy" 7345 { (yyval.decl) = 0; } 7346 break; 7347 7348 case 418: 7349 7350 /* Line 1806 of yacc.c */ 7351 #line 1598 "parser.yy" 7439 7352 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7440 7353 break; 7441 7354 7442 case 409: 7443 7444 /* Line 1806 of yacc.c */ 7445 #line 1571 "parser.yy" 7446 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7447 break; 7448 7449 case 411: 7450 7451 /* Line 1806 of yacc.c */ 7452 #line 1579 "parser.yy" 7355 case 421: 7356 7357 /* Line 1806 of yacc.c */ 7358 #line 1605 "parser.yy" 7453 7359 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7454 7360 break; 7455 7361 7456 case 4 12:7457 7458 /* Line 1806 of yacc.c */ 7459 #line 1 581"parser.yy"7362 case 422: 7363 7364 /* Line 1806 of yacc.c */ 7365 #line 1607 "parser.yy" 7460 7366 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7461 7367 break; 7462 7368 7463 case 413: 7464 7465 /* Line 1806 of yacc.c */ 7466 #line 1583 "parser.yy" 7467 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7468 break; 7469 7470 case 415: 7471 7472 /* Line 1806 of yacc.c */ 7473 #line 1589 "parser.yy" 7474 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7475 break; 7476 7477 case 416: 7478 7479 /* Line 1806 of yacc.c */ 7480 #line 1594 "parser.yy" 7481 { (yyval.decl) = 0; } 7482 break; 7483 7484 case 419: 7485 7486 /* Line 1806 of yacc.c */ 7487 #line 1601 "parser.yy" 7488 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7489 break; 7490 7491 case 422: 7492 7493 /* Line 1806 of yacc.c */ 7494 #line 1608 "parser.yy" 7495 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7496 break; 7497 7498 case 423: 7499 7500 /* Line 1806 of yacc.c */ 7501 #line 1610 "parser.yy" 7502 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7369 case 424: 7370 7371 /* Line 1806 of yacc.c */ 7372 #line 1616 "parser.yy" 7373 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7503 7374 break; 7504 7375 … … 7513 7384 7514 7385 /* Line 1806 of yacc.c */ 7515 #line 1622 "parser.yy" 7516 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7517 break; 7518 7519 case 427: 7520 7521 /* Line 1806 of yacc.c */ 7522 #line 1624 "parser.yy" 7386 #line 1621 "parser.yy" 7523 7387 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7524 7388 break; 7525 7389 7526 case 43 2:7527 7528 /* Line 1806 of yacc.c */ 7529 #line 163 4"parser.yy"7390 case 431: 7391 7392 /* Line 1806 of yacc.c */ 7393 #line 1631 "parser.yy" 7530 7394 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7531 7395 break; 7532 7396 7533 case 43 4:7534 7535 /* Line 1806 of yacc.c */ 7536 #line 16 40"parser.yy"7397 case 433: 7398 7399 /* Line 1806 of yacc.c */ 7400 #line 1637 "parser.yy" 7537 7401 { 7538 7402 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7541 7405 break; 7542 7406 7543 case 43 5:7544 7545 /* Line 1806 of yacc.c */ 7546 #line 164 5"parser.yy"7407 case 434: 7408 7409 /* Line 1806 of yacc.c */ 7410 #line 1642 "parser.yy" 7547 7411 { 7548 7412 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7551 7415 break; 7552 7416 7417 case 436: 7418 7419 /* Line 1806 of yacc.c */ 7420 #line 1651 "parser.yy" 7421 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7422 break; 7423 7553 7424 case 437: 7554 7425 7555 7426 /* Line 1806 of yacc.c */ 7556 #line 1654 "parser.yy" 7427 #line 1660 "parser.yy" 7428 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7429 break; 7430 7431 case 438: 7432 7433 /* Line 1806 of yacc.c */ 7434 #line 1662 "parser.yy" 7435 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7436 break; 7437 7438 case 450: 7439 7440 /* Line 1806 of yacc.c */ 7441 #line 1687 "parser.yy" 7557 7442 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7558 7443 break; 7559 7444 7560 case 438: 7561 7562 /* Line 1806 of yacc.c */ 7563 #line 1663 "parser.yy" 7564 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7565 break; 7566 7567 case 439: 7568 7569 /* Line 1806 of yacc.c */ 7570 #line 1665 "parser.yy" 7571 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7572 break; 7573 7574 case 451: 7575 7576 /* Line 1806 of yacc.c */ 7577 #line 1690 "parser.yy" 7445 case 454: 7446 7447 /* Line 1806 of yacc.c */ 7448 #line 1695 "parser.yy" 7578 7449 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7579 7450 break; … … 7582 7453 7583 7454 /* Line 1806 of yacc.c */ 7584 #line 1 698"parser.yy"7585 { (yyval. decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7455 #line 1700 "parser.yy" 7456 { (yyval.in) = 0; } 7586 7457 break; 7587 7458 … … 7589 7460 7590 7461 /* Line 1806 of yacc.c */ 7591 #line 1703 "parser.yy" 7462 #line 1702 "parser.yy" 7463 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7464 break; 7465 7466 case 457: 7467 7468 /* Line 1806 of yacc.c */ 7469 #line 1704 "parser.yy" 7470 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7471 break; 7472 7473 case 458: 7474 7475 /* Line 1806 of yacc.c */ 7476 #line 1708 "parser.yy" 7477 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7478 break; 7479 7480 case 459: 7481 7482 /* Line 1806 of yacc.c */ 7483 #line 1709 "parser.yy" 7484 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7485 break; 7486 7487 case 460: 7488 7489 /* Line 1806 of yacc.c */ 7490 #line 1714 "parser.yy" 7592 7491 { (yyval.in) = 0; } 7593 7492 break; 7594 7493 7595 case 457: 7596 7597 /* Line 1806 of yacc.c */ 7598 #line 1705 "parser.yy" 7599 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7600 break; 7601 7602 case 458: 7603 7604 /* Line 1806 of yacc.c */ 7605 #line 1707 "parser.yy" 7606 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7607 break; 7608 7609 case 459: 7610 7611 /* Line 1806 of yacc.c */ 7612 #line 1711 "parser.yy" 7613 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7614 break; 7615 7616 case 460: 7617 7618 /* Line 1806 of yacc.c */ 7619 #line 1712 "parser.yy" 7620 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7621 break; 7622 7623 case 461: 7494 case 462: 7495 7496 /* Line 1806 of yacc.c */ 7497 #line 1716 "parser.yy" 7498 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7499 break; 7500 7501 case 463: 7624 7502 7625 7503 /* Line 1806 of yacc.c */ 7626 7504 #line 1717 "parser.yy" 7627 { (yyval.in) = 0; }7628 break; 7629 7630 case 46 3:7505 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7506 break; 7507 7508 case 464: 7631 7509 7632 7510 /* Line 1806 of yacc.c */ 7633 7511 #line 1719 "parser.yy" 7634 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }7635 break;7636 7637 case 464:7638 7639 /* Line 1806 of yacc.c */7640 #line 1720 "parser.yy"7641 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }7642 break;7643 7644 case 465:7645 7646 /* Line 1806 of yacc.c */7647 #line 1722 "parser.yy"7648 7512 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7649 7513 break; 7650 7514 7651 case 46 7:7652 7653 /* Line 1806 of yacc.c */ 7654 #line 173 8"parser.yy"7515 case 466: 7516 7517 /* Line 1806 of yacc.c */ 7518 #line 1735 "parser.yy" 7655 7519 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7656 7520 break; 7657 7521 7522 case 468: 7523 7524 /* Line 1806 of yacc.c */ 7525 #line 1741 "parser.yy" 7526 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); } 7527 break; 7528 7658 7529 case 469: 7659 7530 7660 7531 /* Line 1806 of yacc.c */ 7661 #line 174 4"parser.yy"7662 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }7532 #line 1749 "parser.yy" 7533 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); } 7663 7534 break; 7664 7535 … … 7666 7537 7667 7538 /* Line 1806 of yacc.c */ 7668 #line 175 2"parser.yy"7669 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[( 1) - (1)].tok) ) ); }7539 #line 1751 "parser.yy" 7540 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); } 7670 7541 break; 7671 7542 … … 7674 7545 /* Line 1806 of yacc.c */ 7675 7546 #line 1754 "parser.yy" 7676 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) )); }7547 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7677 7548 break; 7678 7549 … … 7680 7551 7681 7552 /* Line 1806 of yacc.c */ 7682 #line 175 7"parser.yy"7553 #line 1756 "parser.yy" 7683 7554 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7684 7555 break; … … 7687 7558 7688 7559 /* Line 1806 of yacc.c */ 7689 #line 175 9"parser.yy"7690 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }7560 #line 1758 "parser.yy" 7561 { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); } 7691 7562 break; 7692 7563 … … 7694 7565 7695 7566 /* Line 1806 of yacc.c */ 7696 #line 1761 "parser.yy" 7697 { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); } 7698 break; 7699 7700 case 475: 7701 7702 /* Line 1806 of yacc.c */ 7703 #line 1763 "parser.yy" 7567 #line 1760 "parser.yy" 7704 7568 { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); } 7705 7569 break; 7706 7570 7571 case 476: 7572 7573 /* Line 1806 of yacc.c */ 7574 #line 1784 "parser.yy" 7575 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7576 break; 7577 7707 7578 case 477: 7708 7579 7709 7580 /* Line 1806 of yacc.c */ 7710 #line 1787 "parser.yy" 7581 #line 1786 "parser.yy" 7582 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7583 break; 7584 7585 case 478: 7586 7587 /* Line 1806 of yacc.c */ 7588 #line 1788 "parser.yy" 7589 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7590 break; 7591 7592 case 480: 7593 7594 /* Line 1806 of yacc.c */ 7595 #line 1794 "parser.yy" 7711 7596 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7712 7597 break; 7713 7598 7714 case 4 78:7715 7716 /* Line 1806 of yacc.c */ 7717 #line 17 89"parser.yy"7599 case 481: 7600 7601 /* Line 1806 of yacc.c */ 7602 #line 1796 "parser.yy" 7718 7603 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7719 7604 break; 7720 7605 7721 case 479:7722 7723 /* Line 1806 of yacc.c */7724 #line 1791 "parser.yy"7725 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }7726 break;7727 7728 case 481:7729 7730 /* Line 1806 of yacc.c */7731 #line 1797 "parser.yy"7732 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }7733 break;7734 7735 7606 case 482: 7736 7607 7737 7608 /* Line 1806 of yacc.c */ 7738 #line 1799 "parser.yy" 7739 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7740 break; 7741 7742 case 483: 7743 7744 /* Line 1806 of yacc.c */ 7745 #line 1804 "parser.yy" 7609 #line 1801 "parser.yy" 7746 7610 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7747 7611 break; 7748 7612 7613 case 484: 7614 7615 /* Line 1806 of yacc.c */ 7616 #line 1807 "parser.yy" 7617 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7618 break; 7619 7749 7620 case 485: 7750 7621 7751 7622 /* Line 1806 of yacc.c */ 7752 #line 181 0"parser.yy"7753 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl)); }7623 #line 1812 "parser.yy" 7624 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7754 7625 break; 7755 7626 … … 7757 7628 7758 7629 /* Line 1806 of yacc.c */ 7759 #line 1815 "parser.yy" 7760 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7761 break; 7762 7763 case 487: 7764 7765 /* Line 1806 of yacc.c */ 7766 #line 1817 "parser.yy" 7630 #line 1814 "parser.yy" 7767 7631 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7768 7632 break; 7769 7633 7634 case 488: 7635 7636 /* Line 1806 of yacc.c */ 7637 #line 1820 "parser.yy" 7638 { (yyval.tclass) = DeclarationNode::Type; } 7639 break; 7640 7770 7641 case 489: 7771 7642 7772 7643 /* Line 1806 of yacc.c */ 7773 #line 182 3"parser.yy"7774 { (yyval.tclass) = DeclarationNode:: Type; }7644 #line 1822 "parser.yy" 7645 { (yyval.tclass) = DeclarationNode::Ftype; } 7775 7646 break; 7776 7647 … … 7778 7649 7779 7650 /* Line 1806 of yacc.c */ 7780 #line 182 5"parser.yy"7781 { (yyval.tclass) = DeclarationNode:: Ftype; }7651 #line 1824 "parser.yy" 7652 { (yyval.tclass) = DeclarationNode::Dtype; } 7782 7653 break; 7783 7654 … … 7785 7656 7786 7657 /* Line 1806 of yacc.c */ 7787 #line 182 7"parser.yy"7788 { (yyval. tclass) = DeclarationNode::Dtype; }7658 #line 1829 "parser.yy" 7659 { (yyval.decl) = 0; } 7789 7660 break; 7790 7661 … … 7792 7663 7793 7664 /* Line 1806 of yacc.c */ 7794 #line 183 2"parser.yy"7795 { (yyval.decl) = 0; }7665 #line 1831 "parser.yy" 7666 { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7796 7667 break; 7797 7668 … … 7799 7670 7800 7671 /* Line 1806 of yacc.c */ 7801 #line 1834 "parser.yy" 7802 { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7803 break; 7804 7805 case 494: 7806 7807 /* Line 1806 of yacc.c */ 7808 #line 1839 "parser.yy" 7672 #line 1836 "parser.yy" 7809 7673 { 7810 7674 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7813 7677 break; 7814 7678 7679 case 494: 7680 7681 /* Line 1806 of yacc.c */ 7682 #line 1841 "parser.yy" 7683 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7684 break; 7685 7815 7686 case 495: 7816 7687 7817 7688 /* Line 1806 of yacc.c */ 7818 #line 184 4"parser.yy"7819 { (yyval.decl) = (yyvsp[(4) - (5)].decl); }7689 #line 1843 "parser.yy" 7690 { (yyval.decl) = 0; } 7820 7691 break; 7821 7692 … … 7823 7694 7824 7695 /* Line 1806 of yacc.c */ 7825 #line 184 6"parser.yy"7826 { (yyval. decl) = 0; }7827 break; 7828 7829 case 49 7:7696 #line 1848 "parser.yy" 7697 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7698 break; 7699 7700 case 498: 7830 7701 7831 7702 /* Line 1806 of yacc.c */ 7832 7703 #line 1851 "parser.yy" 7833 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl)); }7704 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); } 7834 7705 break; 7835 7706 … … 7837 7708 7838 7709 /* Line 1806 of yacc.c */ 7839 #line 185 4"parser.yy"7840 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }7710 #line 1853 "parser.yy" 7711 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7841 7712 break; 7842 7713 … … 7844 7715 7845 7716 /* Line 1806 of yacc.c */ 7846 #line 185 6"parser.yy"7847 { (yyval. en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }7717 #line 1858 "parser.yy" 7718 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7848 7719 break; 7849 7720 … … 7851 7722 7852 7723 /* Line 1806 of yacc.c */ 7853 #line 186 1"parser.yy"7854 { (yyval.decl) = (yyvsp[( 2) - (2)].decl); }7724 #line 1860 "parser.yy" 7725 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7855 7726 break; 7856 7727 … … 7858 7729 7859 7730 /* Line 1806 of yacc.c */ 7860 #line 186 3"parser.yy"7861 { (yyval.decl) = (yyvsp[( 3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }7731 #line 1862 "parser.yy" 7732 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7862 7733 break; 7863 7734 … … 7865 7736 7866 7737 /* Line 1806 of yacc.c */ 7867 #line 186 5"parser.yy"7868 { (yyval.decl) = (yyvsp[(1) - ( 3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl)) ); }7738 #line 1867 "parser.yy" 7739 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7869 7740 break; 7870 7741 … … 7872 7743 7873 7744 /* Line 1806 of yacc.c */ 7874 #line 18 70"parser.yy"7875 { (yyval.decl) = (yyvsp[(1) - ( 2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }7745 #line 1869 "parser.yy" 7746 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7876 7747 break; 7877 7748 … … 7879 7750 7880 7751 /* Line 1806 of yacc.c */ 7881 #line 1872 "parser.yy" 7882 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7883 break; 7884 7885 case 506: 7886 7887 /* Line 1806 of yacc.c */ 7888 #line 1877 "parser.yy" 7752 #line 1874 "parser.yy" 7889 7753 { 7890 7754 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7893 7757 break; 7894 7758 7895 case 50 7:7896 7897 /* Line 1806 of yacc.c */ 7898 #line 18 82"parser.yy"7759 case 506: 7760 7761 /* Line 1806 of yacc.c */ 7762 #line 1879 "parser.yy" 7899 7763 { 7900 7764 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7903 7767 break; 7904 7768 7905 case 50 8:7906 7907 /* Line 1806 of yacc.c */ 7908 #line 18 90"parser.yy"7769 case 507: 7770 7771 /* Line 1806 of yacc.c */ 7772 #line 1887 "parser.yy" 7909 7773 { 7910 7774 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7913 7777 break; 7914 7778 7915 case 50 9:7916 7917 /* Line 1806 of yacc.c */ 7918 #line 189 5"parser.yy"7779 case 508: 7780 7781 /* Line 1806 of yacc.c */ 7782 #line 1892 "parser.yy" 7919 7783 { 7920 7784 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7923 7787 break; 7924 7788 7925 case 5 10:7926 7927 /* Line 1806 of yacc.c */ 7928 #line 1 900"parser.yy"7789 case 509: 7790 7791 /* Line 1806 of yacc.c */ 7792 #line 1897 "parser.yy" 7929 7793 { 7930 7794 typedefTable.leaveTrait(); … … 7934 7798 break; 7935 7799 7936 case 51 2:7937 7938 /* Line 1806 of yacc.c */ 7939 #line 19 10"parser.yy"7800 case 511: 7801 7802 /* Line 1806 of yacc.c */ 7803 #line 1907 "parser.yy" 7940 7804 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7941 7805 break; 7942 7806 7943 case 51 5:7944 7945 /* Line 1806 of yacc.c */ 7946 #line 19 20"parser.yy"7807 case 514: 7808 7809 /* Line 1806 of yacc.c */ 7810 #line 1917 "parser.yy" 7947 7811 { 7948 7812 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7951 7815 break; 7952 7816 7953 case 51 6:7954 7955 /* Line 1806 of yacc.c */ 7956 #line 192 5"parser.yy"7817 case 515: 7818 7819 /* Line 1806 of yacc.c */ 7820 #line 1922 "parser.yy" 7957 7821 { 7958 7822 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7961 7825 break; 7962 7826 7963 case 51 7:7964 7965 /* Line 1806 of yacc.c */ 7966 #line 19 30"parser.yy"7827 case 516: 7828 7829 /* Line 1806 of yacc.c */ 7830 #line 1927 "parser.yy" 7967 7831 { 7968 7832 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7971 7835 break; 7972 7836 7973 case 51 8:7974 7975 /* Line 1806 of yacc.c */ 7976 #line 193 8"parser.yy"7837 case 517: 7838 7839 /* Line 1806 of yacc.c */ 7840 #line 1935 "parser.yy" 7977 7841 { 7978 7842 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7981 7845 break; 7982 7846 7983 case 51 9:7984 7985 /* Line 1806 of yacc.c */ 7986 #line 194 3"parser.yy"7847 case 518: 7848 7849 /* Line 1806 of yacc.c */ 7850 #line 1940 "parser.yy" 7987 7851 { 7988 7852 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7991 7855 break; 7992 7856 7857 case 519: 7858 7859 /* Line 1806 of yacc.c */ 7860 #line 1950 "parser.yy" 7861 {} 7862 break; 7863 7993 7864 case 520: 7994 7865 7995 7866 /* Line 1806 of yacc.c */ 7996 #line 1953 "parser.yy" 7997 {} 7998 break; 7999 8000 case 521: 8001 8002 /* Line 1806 of yacc.c */ 8003 #line 1955 "parser.yy" 7867 #line 1952 "parser.yy" 8004 7868 { 8005 7869 if ( theTree ) { … … 8011 7875 break; 8012 7876 7877 case 522: 7878 7879 /* Line 1806 of yacc.c */ 7880 #line 1964 "parser.yy" 7881 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7882 break; 7883 8013 7884 case 523: 8014 7885 8015 7886 /* Line 1806 of yacc.c */ 8016 #line 1967 "parser.yy" 8017 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 8018 break; 8019 8020 case 524: 8021 8022 /* Line 1806 of yacc.c */ 8023 #line 1972 "parser.yy" 7887 #line 1969 "parser.yy" 8024 7888 { (yyval.decl) = 0; } 8025 7889 break; 8026 7890 7891 case 527: 7892 7893 /* Line 1806 of yacc.c */ 7894 #line 1977 "parser.yy" 7895 {} 7896 break; 7897 8027 7898 case 528: 8028 7899 8029 7900 /* Line 1806 of yacc.c */ 8030 #line 1980 "parser.yy" 8031 {} 8032 break; 8033 8034 case 529: 8035 8036 /* Line 1806 of yacc.c */ 8037 #line 1982 "parser.yy" 7901 #line 1979 "parser.yy" 8038 7902 { 8039 7903 linkageStack.push( linkage ); … … 8042 7906 break; 8043 7907 8044 case 5 30:8045 8046 /* Line 1806 of yacc.c */ 8047 #line 198 7"parser.yy"7908 case 529: 7909 7910 /* Line 1806 of yacc.c */ 7911 #line 1984 "parser.yy" 8048 7912 { 8049 7913 linkage = linkageStack.top(); … … 8053 7917 break; 8054 7918 8055 case 53 1:8056 8057 /* Line 1806 of yacc.c */ 8058 #line 199 3"parser.yy"8059 { (yyval.decl) = (yyvsp[(2) - (2)].decl) /*->set_extension( true )*/; }8060 break; 8061 8062 case 53 3:8063 8064 /* Line 1806 of yacc.c */ 8065 #line 200 4"parser.yy"7919 case 530: 7920 7921 /* Line 1806 of yacc.c */ 7922 #line 1990 "parser.yy" 7923 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7924 break; 7925 7926 case 532: 7927 7928 /* Line 1806 of yacc.c */ 7929 #line 2000 "parser.yy" 8066 7930 { 8067 7931 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8071 7935 break; 8072 7936 8073 case 53 4:8074 8075 /* Line 1806 of yacc.c */ 8076 #line 20 10"parser.yy"7937 case 533: 7938 7939 /* Line 1806 of yacc.c */ 7940 #line 2006 "parser.yy" 8077 7941 { 8078 7942 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8082 7946 break; 8083 7947 8084 case 53 5:8085 8086 /* Line 1806 of yacc.c */ 8087 #line 201 9"parser.yy"7948 case 534: 7949 7950 /* Line 1806 of yacc.c */ 7951 #line 2015 "parser.yy" 8088 7952 { 8089 7953 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8093 7957 break; 8094 7958 8095 case 53 6:8096 8097 /* Line 1806 of yacc.c */ 8098 #line 202 5"parser.yy"7959 case 535: 7960 7961 /* Line 1806 of yacc.c */ 7962 #line 2021 "parser.yy" 8099 7963 { 8100 7964 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8104 7968 break; 8105 7969 8106 case 53 7:8107 8108 /* Line 1806 of yacc.c */ 8109 #line 20 31"parser.yy"7970 case 536: 7971 7972 /* Line 1806 of yacc.c */ 7973 #line 2027 "parser.yy" 8110 7974 { 8111 7975 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8115 7979 break; 8116 7980 8117 case 53 8:8118 8119 /* Line 1806 of yacc.c */ 8120 #line 203 7"parser.yy"7981 case 537: 7982 7983 /* Line 1806 of yacc.c */ 7984 #line 2033 "parser.yy" 8121 7985 { 8122 7986 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8126 7990 break; 8127 7991 8128 case 53 9:8129 8130 /* Line 1806 of yacc.c */ 8131 #line 20 43"parser.yy"7992 case 538: 7993 7994 /* Line 1806 of yacc.c */ 7995 #line 2039 "parser.yy" 8132 7996 { 8133 7997 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8137 8001 break; 8138 8002 8139 case 5 40:8140 8141 /* Line 1806 of yacc.c */ 8142 #line 20 51"parser.yy"8003 case 539: 8004 8005 /* Line 1806 of yacc.c */ 8006 #line 2047 "parser.yy" 8143 8007 { 8144 8008 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8148 8012 break; 8149 8013 8150 case 54 1:8151 8152 /* Line 1806 of yacc.c */ 8153 #line 205 7"parser.yy"8014 case 540: 8015 8016 /* Line 1806 of yacc.c */ 8017 #line 2053 "parser.yy" 8154 8018 { 8155 8019 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8159 8023 break; 8160 8024 8161 case 54 2:8162 8163 /* Line 1806 of yacc.c */ 8164 #line 206 5"parser.yy"8025 case 541: 8026 8027 /* Line 1806 of yacc.c */ 8028 #line 2061 "parser.yy" 8165 8029 { 8166 8030 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8170 8034 break; 8171 8035 8172 case 54 3:8173 8174 /* Line 1806 of yacc.c */ 8175 #line 20 71"parser.yy"8036 case 542: 8037 8038 /* Line 1806 of yacc.c */ 8039 #line 2067 "parser.yy" 8176 8040 { 8177 8041 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8181 8045 break; 8182 8046 8183 case 54 7:8184 8185 /* Line 1806 of yacc.c */ 8186 #line 208 6"parser.yy"8047 case 546: 8048 8049 /* Line 1806 of yacc.c */ 8050 #line 2082 "parser.yy" 8187 8051 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 8188 8052 break; 8189 8053 8190 case 5 50:8191 8192 /* Line 1806 of yacc.c */ 8193 #line 209 6"parser.yy"8054 case 549: 8055 8056 /* Line 1806 of yacc.c */ 8057 #line 2092 "parser.yy" 8194 8058 { (yyval.decl) = 0; } 8195 8059 break; 8196 8060 8061 case 552: 8062 8063 /* Line 1806 of yacc.c */ 8064 #line 2099 "parser.yy" 8065 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8066 break; 8067 8197 8068 case 553: 8198 8069 8199 8070 /* Line 1806 of yacc.c */ 8200 #line 2103 "parser.yy" 8201 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8202 break; 8203 8204 case 554: 8205 8206 /* Line 1806 of yacc.c */ 8207 #line 2109 "parser.yy" 8071 #line 2105 "parser.yy" 8208 8072 { (yyval.decl) = 0; } 8209 8073 break; 8210 8074 8075 case 559: 8076 8077 /* Line 1806 of yacc.c */ 8078 #line 2120 "parser.yy" 8079 {} 8080 break; 8081 8211 8082 case 560: 8212 8083 8213 8084 /* Line 1806 of yacc.c */ 8214 #line 212 4"parser.yy"8085 #line 2121 "parser.yy" 8215 8086 {} 8216 8087 break; … … 8219 8090 8220 8091 /* Line 1806 of yacc.c */ 8221 #line 212 5"parser.yy"8092 #line 2122 "parser.yy" 8222 8093 {} 8223 8094 break; … … 8226 8097 8227 8098 /* Line 1806 of yacc.c */ 8228 #line 212 6"parser.yy"8099 #line 2123 "parser.yy" 8229 8100 {} 8230 8101 break; … … 8233 8104 8234 8105 /* Line 1806 of yacc.c */ 8235 #line 2127 "parser.yy" 8236 {} 8237 break; 8238 8239 case 564: 8240 8241 /* Line 1806 of yacc.c */ 8242 #line 2162 "parser.yy" 8106 #line 2158 "parser.yy" 8243 8107 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8244 8108 break; 8245 8109 8110 case 565: 8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2161 "parser.yy" 8114 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8115 break; 8116 8246 8117 case 566: 8247 8118 8248 8119 /* Line 1806 of yacc.c */ 8249 #line 216 5"parser.yy"8120 #line 2163 "parser.yy" 8250 8121 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8251 8122 break; … … 8254 8125 8255 8126 /* Line 1806 of yacc.c */ 8256 #line 2167 "parser.yy" 8257 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8258 break; 8259 8260 case 568: 8261 8262 /* Line 1806 of yacc.c */ 8263 #line 2172 "parser.yy" 8127 #line 2168 "parser.yy" 8264 8128 { 8265 8129 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8268 8132 break; 8269 8133 8134 case 568: 8135 8136 /* Line 1806 of yacc.c */ 8137 #line 2173 "parser.yy" 8138 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8139 break; 8140 8270 8141 case 569: 8271 8142 8272 8143 /* Line 1806 of yacc.c */ 8273 #line 2177 "parser.yy" 8144 #line 2178 "parser.yy" 8145 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8146 break; 8147 8148 case 570: 8149 8150 /* Line 1806 of yacc.c */ 8151 #line 2180 "parser.yy" 8152 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8153 break; 8154 8155 case 571: 8156 8157 /* Line 1806 of yacc.c */ 8158 #line 2182 "parser.yy" 8274 8159 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8275 8160 break; 8276 8161 8277 case 570:8278 8279 /* Line 1806 of yacc.c */8280 #line 2182 "parser.yy"8281 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8282 break;8283 8284 case 571:8285 8286 /* Line 1806 of yacc.c */8287 #line 2184 "parser.yy"8288 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8289 break;8290 8291 8162 case 572: 8292 8163 8293 8164 /* Line 1806 of yacc.c */ 8294 #line 2186 "parser.yy" 8165 #line 2187 "parser.yy" 8166 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8167 break; 8168 8169 case 573: 8170 8171 /* Line 1806 of yacc.c */ 8172 #line 2189 "parser.yy" 8173 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8174 break; 8175 8176 case 574: 8177 8178 /* Line 1806 of yacc.c */ 8179 #line 2191 "parser.yy" 8180 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8181 break; 8182 8183 case 575: 8184 8185 /* Line 1806 of yacc.c */ 8186 #line 2193 "parser.yy" 8295 8187 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8296 8188 break; 8297 8189 8298 case 573:8299 8300 /* Line 1806 of yacc.c */8301 #line 2191 "parser.yy"8302 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8303 break;8304 8305 case 574:8306 8307 /* Line 1806 of yacc.c */8308 #line 2193 "parser.yy"8309 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8310 break;8311 8312 case 575:8313 8314 /* Line 1806 of yacc.c */8315 #line 2195 "parser.yy"8316 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8317 break;8318 8319 8190 case 576: 8320 8191 8321 8192 /* Line 1806 of yacc.c */ 8322 #line 2197 "parser.yy" 8193 #line 2198 "parser.yy" 8194 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8195 break; 8196 8197 case 577: 8198 8199 /* Line 1806 of yacc.c */ 8200 #line 2200 "parser.yy" 8323 8201 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8324 8202 break; 8325 8203 8326 case 577:8327 8328 /* Line 1806 of yacc.c */8329 #line 2202 "parser.yy"8330 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8331 break;8332 8333 8204 case 578: 8334 8205 8335 8206 /* Line 1806 of yacc.c */ 8336 #line 22 04"parser.yy"8337 { (yyval.decl) = (yyvsp[( 2) - (3)].decl); }8338 break; 8339 8340 case 5 79:8207 #line 2210 "parser.yy" 8208 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8209 break; 8210 8211 case 580: 8341 8212 8342 8213 /* Line 1806 of yacc.c */ … … 8348 8219 8349 8220 /* Line 1806 of yacc.c */ 8350 #line 2216 "parser.yy" 8221 #line 2218 "parser.yy" 8222 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8223 break; 8224 8225 case 582: 8226 8227 /* Line 1806 of yacc.c */ 8228 #line 2220 "parser.yy" 8229 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8230 break; 8231 8232 case 583: 8233 8234 /* Line 1806 of yacc.c */ 8235 #line 2222 "parser.yy" 8236 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8237 break; 8238 8239 case 584: 8240 8241 /* Line 1806 of yacc.c */ 8242 #line 2227 "parser.yy" 8243 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8244 break; 8245 8246 case 585: 8247 8248 /* Line 1806 of yacc.c */ 8249 #line 2229 "parser.yy" 8250 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8251 break; 8252 8253 case 586: 8254 8255 /* Line 1806 of yacc.c */ 8256 #line 2231 "parser.yy" 8257 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8258 break; 8259 8260 case 587: 8261 8262 /* Line 1806 of yacc.c */ 8263 #line 2236 "parser.yy" 8264 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8265 break; 8266 8267 case 588: 8268 8269 /* Line 1806 of yacc.c */ 8270 #line 2238 "parser.yy" 8271 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8272 break; 8273 8274 case 589: 8275 8276 /* Line 1806 of yacc.c */ 8277 #line 2240 "parser.yy" 8278 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8279 break; 8280 8281 case 593: 8282 8283 /* Line 1806 of yacc.c */ 8284 #line 2255 "parser.yy" 8285 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8286 break; 8287 8288 case 594: 8289 8290 /* Line 1806 of yacc.c */ 8291 #line 2257 "parser.yy" 8292 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8293 break; 8294 8295 case 595: 8296 8297 /* Line 1806 of yacc.c */ 8298 #line 2259 "parser.yy" 8299 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8300 break; 8301 8302 case 596: 8303 8304 /* Line 1806 of yacc.c */ 8305 #line 2264 "parser.yy" 8306 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8307 break; 8308 8309 case 597: 8310 8311 /* Line 1806 of yacc.c */ 8312 #line 2266 "parser.yy" 8313 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8314 break; 8315 8316 case 598: 8317 8318 /* Line 1806 of yacc.c */ 8319 #line 2268 "parser.yy" 8320 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8321 break; 8322 8323 case 599: 8324 8325 /* Line 1806 of yacc.c */ 8326 #line 2273 "parser.yy" 8327 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8328 break; 8329 8330 case 600: 8331 8332 /* Line 1806 of yacc.c */ 8333 #line 2275 "parser.yy" 8334 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8335 break; 8336 8337 case 601: 8338 8339 /* Line 1806 of yacc.c */ 8340 #line 2277 "parser.yy" 8341 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8342 break; 8343 8344 case 602: 8345 8346 /* Line 1806 of yacc.c */ 8347 #line 2292 "parser.yy" 8351 8348 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8352 8349 break; 8353 8350 8354 case 582: 8355 8356 /* Line 1806 of yacc.c */ 8357 #line 2221 "parser.yy" 8358 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8359 break; 8360 8361 case 583: 8362 8363 /* Line 1806 of yacc.c */ 8364 #line 2223 "parser.yy" 8365 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8366 break; 8367 8368 case 584: 8369 8370 /* Line 1806 of yacc.c */ 8371 #line 2225 "parser.yy" 8372 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8373 break; 8374 8375 case 585: 8376 8377 /* Line 1806 of yacc.c */ 8378 #line 2230 "parser.yy" 8379 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8380 break; 8381 8382 case 586: 8383 8384 /* Line 1806 of yacc.c */ 8385 #line 2232 "parser.yy" 8386 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8387 break; 8388 8389 case 587: 8390 8391 /* Line 1806 of yacc.c */ 8392 #line 2234 "parser.yy" 8393 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8394 break; 8395 8396 case 588: 8397 8398 /* Line 1806 of yacc.c */ 8399 #line 2239 "parser.yy" 8400 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8401 break; 8402 8403 case 589: 8404 8405 /* Line 1806 of yacc.c */ 8406 #line 2241 "parser.yy" 8407 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8408 break; 8409 8410 case 590: 8411 8412 /* Line 1806 of yacc.c */ 8413 #line 2243 "parser.yy" 8414 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8415 break; 8416 8417 case 594: 8418 8419 /* Line 1806 of yacc.c */ 8420 #line 2258 "parser.yy" 8421 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8422 break; 8423 8424 case 595: 8425 8426 /* Line 1806 of yacc.c */ 8427 #line 2260 "parser.yy" 8428 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8429 break; 8430 8431 case 596: 8432 8433 /* Line 1806 of yacc.c */ 8434 #line 2262 "parser.yy" 8435 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8436 break; 8437 8438 case 597: 8439 8440 /* Line 1806 of yacc.c */ 8441 #line 2267 "parser.yy" 8442 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8443 break; 8444 8445 case 598: 8446 8447 /* Line 1806 of yacc.c */ 8448 #line 2269 "parser.yy" 8449 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8450 break; 8451 8452 case 599: 8453 8454 /* Line 1806 of yacc.c */ 8455 #line 2271 "parser.yy" 8456 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8457 break; 8458 8459 case 600: 8460 8461 /* Line 1806 of yacc.c */ 8462 #line 2276 "parser.yy" 8463 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8464 break; 8465 8466 case 601: 8467 8468 /* Line 1806 of yacc.c */ 8469 #line 2278 "parser.yy" 8470 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8471 break; 8472 8473 case 602: 8474 8475 /* Line 1806 of yacc.c */ 8476 #line 2280 "parser.yy" 8477 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8478 break; 8479 8480 case 603: 8351 case 604: 8481 8352 8482 8353 /* Line 1806 of yacc.c */ … … 8488 8359 8489 8360 /* Line 1806 of yacc.c */ 8490 #line 229 8"parser.yy"8361 #line 2297 "parser.yy" 8491 8362 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8492 8363 break; 8493 8364 8494 case 606: 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2300 "parser.yy" 8365 case 607: 8366 8367 /* Line 1806 of yacc.c */ 8368 #line 2303 "parser.yy" 8369 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8370 break; 8371 8372 case 608: 8373 8374 /* Line 1806 of yacc.c */ 8375 #line 2308 "parser.yy" 8376 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8377 break; 8378 8379 case 609: 8380 8381 /* Line 1806 of yacc.c */ 8382 #line 2310 "parser.yy" 8383 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8384 break; 8385 8386 case 610: 8387 8388 /* Line 1806 of yacc.c */ 8389 #line 2312 "parser.yy" 8390 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8391 break; 8392 8393 case 611: 8394 8395 /* Line 1806 of yacc.c */ 8396 #line 2317 "parser.yy" 8397 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8398 break; 8399 8400 case 612: 8401 8402 /* Line 1806 of yacc.c */ 8403 #line 2319 "parser.yy" 8404 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8405 break; 8406 8407 case 613: 8408 8409 /* Line 1806 of yacc.c */ 8410 #line 2321 "parser.yy" 8411 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8412 break; 8413 8414 case 614: 8415 8416 /* Line 1806 of yacc.c */ 8417 #line 2323 "parser.yy" 8418 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8419 break; 8420 8421 case 615: 8422 8423 /* Line 1806 of yacc.c */ 8424 #line 2328 "parser.yy" 8425 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8426 break; 8427 8428 case 616: 8429 8430 /* Line 1806 of yacc.c */ 8431 #line 2330 "parser.yy" 8432 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8433 break; 8434 8435 case 617: 8436 8437 /* Line 1806 of yacc.c */ 8438 #line 2332 "parser.yy" 8439 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8440 break; 8441 8442 case 618: 8443 8444 /* Line 1806 of yacc.c */ 8445 #line 2342 "parser.yy" 8498 8446 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8499 8447 break; 8500 8448 8501 case 608: 8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2306 "parser.yy" 8505 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8506 break; 8507 8508 case 609: 8509 8510 /* Line 1806 of yacc.c */ 8511 #line 2311 "parser.yy" 8512 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8513 break; 8514 8515 case 610: 8516 8517 /* Line 1806 of yacc.c */ 8518 #line 2313 "parser.yy" 8519 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8520 break; 8521 8522 case 611: 8523 8524 /* Line 1806 of yacc.c */ 8525 #line 2315 "parser.yy" 8526 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8527 break; 8528 8529 case 612: 8530 8531 /* Line 1806 of yacc.c */ 8532 #line 2320 "parser.yy" 8533 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8534 break; 8535 8536 case 613: 8537 8538 /* Line 1806 of yacc.c */ 8539 #line 2322 "parser.yy" 8540 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8541 break; 8542 8543 case 614: 8544 8545 /* Line 1806 of yacc.c */ 8546 #line 2324 "parser.yy" 8547 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8548 break; 8549 8550 case 615: 8551 8552 /* Line 1806 of yacc.c */ 8553 #line 2326 "parser.yy" 8554 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8555 break; 8556 8557 case 616: 8558 8559 /* Line 1806 of yacc.c */ 8560 #line 2331 "parser.yy" 8561 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8562 break; 8563 8564 case 617: 8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2333 "parser.yy" 8568 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8569 break; 8570 8571 case 618: 8572 8573 /* Line 1806 of yacc.c */ 8574 #line 2335 "parser.yy" 8575 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8576 break; 8577 8578 case 619: 8449 case 620: 8579 8450 8580 8451 /* Line 1806 of yacc.c */ … … 8586 8457 8587 8458 /* Line 1806 of yacc.c */ 8588 #line 234 8"parser.yy"8459 #line 2347 "parser.yy" 8589 8460 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8590 8461 break; … … 8593 8464 8594 8465 /* Line 1806 of yacc.c */ 8595 #line 2350 "parser.yy" 8466 #line 2352 "parser.yy" 8467 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8468 break; 8469 8470 case 623: 8471 8472 /* Line 1806 of yacc.c */ 8473 #line 2354 "parser.yy" 8474 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8475 break; 8476 8477 case 624: 8478 8479 /* Line 1806 of yacc.c */ 8480 #line 2356 "parser.yy" 8481 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8482 break; 8483 8484 case 625: 8485 8486 /* Line 1806 of yacc.c */ 8487 #line 2361 "parser.yy" 8488 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8489 break; 8490 8491 case 626: 8492 8493 /* Line 1806 of yacc.c */ 8494 #line 2363 "parser.yy" 8495 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8496 break; 8497 8498 case 627: 8499 8500 /* Line 1806 of yacc.c */ 8501 #line 2365 "parser.yy" 8502 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8503 break; 8504 8505 case 628: 8506 8507 /* Line 1806 of yacc.c */ 8508 #line 2367 "parser.yy" 8509 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8510 break; 8511 8512 case 629: 8513 8514 /* Line 1806 of yacc.c */ 8515 #line 2372 "parser.yy" 8516 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8517 break; 8518 8519 case 630: 8520 8521 /* Line 1806 of yacc.c */ 8522 #line 2374 "parser.yy" 8523 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8524 break; 8525 8526 case 631: 8527 8528 /* Line 1806 of yacc.c */ 8529 #line 2376 "parser.yy" 8530 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8531 break; 8532 8533 case 632: 8534 8535 /* Line 1806 of yacc.c */ 8536 #line 2407 "parser.yy" 8596 8537 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8597 8538 break; 8598 8539 8599 case 623: 8600 8601 /* Line 1806 of yacc.c */ 8602 #line 2355 "parser.yy" 8603 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8604 break; 8605 8606 case 624: 8607 8608 /* Line 1806 of yacc.c */ 8609 #line 2357 "parser.yy" 8610 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8611 break; 8612 8613 case 625: 8614 8615 /* Line 1806 of yacc.c */ 8616 #line 2359 "parser.yy" 8617 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8618 break; 8619 8620 case 626: 8621 8622 /* Line 1806 of yacc.c */ 8623 #line 2364 "parser.yy" 8624 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8625 break; 8626 8627 case 627: 8628 8629 /* Line 1806 of yacc.c */ 8630 #line 2366 "parser.yy" 8631 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8632 break; 8633 8634 case 628: 8635 8636 /* Line 1806 of yacc.c */ 8637 #line 2368 "parser.yy" 8638 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8639 break; 8640 8641 case 629: 8642 8643 /* Line 1806 of yacc.c */ 8644 #line 2370 "parser.yy" 8645 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8646 break; 8647 8648 case 630: 8649 8650 /* Line 1806 of yacc.c */ 8651 #line 2375 "parser.yy" 8652 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8653 break; 8654 8655 case 631: 8656 8657 /* Line 1806 of yacc.c */ 8658 #line 2377 "parser.yy" 8659 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8660 break; 8661 8662 case 632: 8663 8664 /* Line 1806 of yacc.c */ 8665 #line 2379 "parser.yy" 8666 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8667 break; 8668 8669 case 633: 8540 case 634: 8670 8541 8671 8542 /* Line 1806 of yacc.c */ … … 8677 8548 8678 8549 /* Line 1806 of yacc.c */ 8679 #line 241 3"parser.yy"8550 #line 2412 "parser.yy" 8680 8551 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8681 8552 break; … … 8684 8555 8685 8556 /* Line 1806 of yacc.c */ 8686 #line 2415 "parser.yy" 8687 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8688 break; 8689 8690 case 637: 8691 8692 /* Line 1806 of yacc.c */ 8693 #line 2420 "parser.yy" 8557 #line 2417 "parser.yy" 8694 8558 { 8695 8559 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8698 8562 break; 8699 8563 8700 case 63 8:8701 8702 /* Line 1806 of yacc.c */ 8703 #line 242 5"parser.yy"8564 case 637: 8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2422 "parser.yy" 8704 8568 { 8705 8569 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8708 8572 break; 8709 8573 8574 case 638: 8575 8576 /* Line 1806 of yacc.c */ 8577 #line 2430 "parser.yy" 8578 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8579 break; 8580 8710 8581 case 639: 8711 8582 8712 8583 /* Line 1806 of yacc.c */ 8713 #line 2433 "parser.yy" 8584 #line 2432 "parser.yy" 8585 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8586 break; 8587 8588 case 640: 8589 8590 /* Line 1806 of yacc.c */ 8591 #line 2434 "parser.yy" 8592 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8593 break; 8594 8595 case 641: 8596 8597 /* Line 1806 of yacc.c */ 8598 #line 2439 "parser.yy" 8599 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8600 break; 8601 8602 case 642: 8603 8604 /* Line 1806 of yacc.c */ 8605 #line 2441 "parser.yy" 8606 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8607 break; 8608 8609 case 643: 8610 8611 /* Line 1806 of yacc.c */ 8612 #line 2446 "parser.yy" 8613 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8614 break; 8615 8616 case 644: 8617 8618 /* Line 1806 of yacc.c */ 8619 #line 2448 "parser.yy" 8620 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8621 break; 8622 8623 case 646: 8624 8625 /* Line 1806 of yacc.c */ 8626 #line 2463 "parser.yy" 8627 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8628 break; 8629 8630 case 647: 8631 8632 /* Line 1806 of yacc.c */ 8633 #line 2465 "parser.yy" 8634 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8635 break; 8636 8637 case 648: 8638 8639 /* Line 1806 of yacc.c */ 8640 #line 2470 "parser.yy" 8641 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8642 break; 8643 8644 case 649: 8645 8646 /* Line 1806 of yacc.c */ 8647 #line 2472 "parser.yy" 8648 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8649 break; 8650 8651 case 650: 8652 8653 /* Line 1806 of yacc.c */ 8654 #line 2474 "parser.yy" 8714 8655 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8715 8656 break; 8716 8657 8717 case 6 40:8718 8719 /* Line 1806 of yacc.c */ 8720 #line 24 35"parser.yy"8658 case 651: 8659 8660 /* Line 1806 of yacc.c */ 8661 #line 2476 "parser.yy" 8721 8662 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8722 8663 break; 8723 8664 8724 case 6 41:8725 8726 /* Line 1806 of yacc.c */ 8727 #line 24 37"parser.yy"8665 case 652: 8666 8667 /* Line 1806 of yacc.c */ 8668 #line 2478 "parser.yy" 8728 8669 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8729 8670 break; 8730 8671 8731 case 642: 8732 8733 /* Line 1806 of yacc.c */ 8734 #line 2442 "parser.yy" 8672 case 654: 8673 8674 /* Line 1806 of yacc.c */ 8675 #line 2484 "parser.yy" 8676 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8677 break; 8678 8679 case 655: 8680 8681 /* Line 1806 of yacc.c */ 8682 #line 2486 "parser.yy" 8683 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8684 break; 8685 8686 case 656: 8687 8688 /* Line 1806 of yacc.c */ 8689 #line 2488 "parser.yy" 8690 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8691 break; 8692 8693 case 657: 8694 8695 /* Line 1806 of yacc.c */ 8696 #line 2493 "parser.yy" 8697 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8698 break; 8699 8700 case 658: 8701 8702 /* Line 1806 of yacc.c */ 8703 #line 2495 "parser.yy" 8704 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8705 break; 8706 8707 case 659: 8708 8709 /* Line 1806 of yacc.c */ 8710 #line 2497 "parser.yy" 8711 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8712 break; 8713 8714 case 660: 8715 8716 /* Line 1806 of yacc.c */ 8717 #line 2503 "parser.yy" 8718 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8719 break; 8720 8721 case 661: 8722 8723 /* Line 1806 of yacc.c */ 8724 #line 2505 "parser.yy" 8725 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8726 break; 8727 8728 case 663: 8729 8730 /* Line 1806 of yacc.c */ 8731 #line 2511 "parser.yy" 8732 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8733 break; 8734 8735 case 664: 8736 8737 /* Line 1806 of yacc.c */ 8738 #line 2513 "parser.yy" 8739 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8740 break; 8741 8742 case 665: 8743 8744 /* Line 1806 of yacc.c */ 8745 #line 2515 "parser.yy" 8746 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8747 break; 8748 8749 case 666: 8750 8751 /* Line 1806 of yacc.c */ 8752 #line 2517 "parser.yy" 8753 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8754 break; 8755 8756 case 668: 8757 8758 /* Line 1806 of yacc.c */ 8759 #line 2532 "parser.yy" 8760 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8761 break; 8762 8763 case 669: 8764 8765 /* Line 1806 of yacc.c */ 8766 #line 2534 "parser.yy" 8767 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8768 break; 8769 8770 case 670: 8771 8772 /* Line 1806 of yacc.c */ 8773 #line 2539 "parser.yy" 8774 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8775 break; 8776 8777 case 671: 8778 8779 /* Line 1806 of yacc.c */ 8780 #line 2541 "parser.yy" 8781 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8782 break; 8783 8784 case 672: 8785 8786 /* Line 1806 of yacc.c */ 8787 #line 2543 "parser.yy" 8788 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8789 break; 8790 8791 case 673: 8792 8793 /* Line 1806 of yacc.c */ 8794 #line 2545 "parser.yy" 8795 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8796 break; 8797 8798 case 674: 8799 8800 /* Line 1806 of yacc.c */ 8801 #line 2547 "parser.yy" 8802 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8803 break; 8804 8805 case 676: 8806 8807 /* Line 1806 of yacc.c */ 8808 #line 2553 "parser.yy" 8809 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8810 break; 8811 8812 case 677: 8813 8814 /* Line 1806 of yacc.c */ 8815 #line 2555 "parser.yy" 8816 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8817 break; 8818 8819 case 678: 8820 8821 /* Line 1806 of yacc.c */ 8822 #line 2557 "parser.yy" 8823 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8824 break; 8825 8826 case 679: 8827 8828 /* Line 1806 of yacc.c */ 8829 #line 2562 "parser.yy" 8830 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8831 break; 8832 8833 case 680: 8834 8835 /* Line 1806 of yacc.c */ 8836 #line 2564 "parser.yy" 8837 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8838 break; 8839 8840 case 681: 8841 8842 /* Line 1806 of yacc.c */ 8843 #line 2566 "parser.yy" 8844 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8845 break; 8846 8847 case 683: 8848 8849 /* Line 1806 of yacc.c */ 8850 #line 2573 "parser.yy" 8735 8851 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8736 8852 break; 8737 8853 8738 case 643: 8739 8740 /* Line 1806 of yacc.c */ 8741 #line 2444 "parser.yy" 8854 case 685: 8855 8856 /* Line 1806 of yacc.c */ 8857 #line 2584 "parser.yy" 8858 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8859 break; 8860 8861 case 686: 8862 8863 /* Line 1806 of yacc.c */ 8864 #line 2587 "parser.yy" 8865 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8866 break; 8867 8868 case 687: 8869 8870 /* Line 1806 of yacc.c */ 8871 #line 2589 "parser.yy" 8872 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8873 break; 8874 8875 case 688: 8876 8877 /* Line 1806 of yacc.c */ 8878 #line 2592 "parser.yy" 8879 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8880 break; 8881 8882 case 689: 8883 8884 /* Line 1806 of yacc.c */ 8885 #line 2594 "parser.yy" 8886 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8887 break; 8888 8889 case 690: 8890 8891 /* Line 1806 of yacc.c */ 8892 #line 2596 "parser.yy" 8893 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8894 break; 8895 8896 case 692: 8897 8898 /* Line 1806 of yacc.c */ 8899 #line 2610 "parser.yy" 8900 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8901 break; 8902 8903 case 693: 8904 8905 /* Line 1806 of yacc.c */ 8906 #line 2612 "parser.yy" 8907 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8908 break; 8909 8910 case 694: 8911 8912 /* Line 1806 of yacc.c */ 8913 #line 2617 "parser.yy" 8914 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8915 break; 8916 8917 case 695: 8918 8919 /* Line 1806 of yacc.c */ 8920 #line 2619 "parser.yy" 8921 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8922 break; 8923 8924 case 696: 8925 8926 /* Line 1806 of yacc.c */ 8927 #line 2621 "parser.yy" 8928 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8929 break; 8930 8931 case 697: 8932 8933 /* Line 1806 of yacc.c */ 8934 #line 2623 "parser.yy" 8935 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8936 break; 8937 8938 case 698: 8939 8940 /* Line 1806 of yacc.c */ 8941 #line 2625 "parser.yy" 8942 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8943 break; 8944 8945 case 700: 8946 8947 /* Line 1806 of yacc.c */ 8948 #line 2631 "parser.yy" 8742 8949 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8743 8950 break; 8744 8951 8745 case 644: 8746 8747 /* Line 1806 of yacc.c */ 8748 #line 2449 "parser.yy" 8749 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8750 break; 8751 8752 case 645: 8753 8754 /* Line 1806 of yacc.c */ 8755 #line 2451 "parser.yy" 8952 case 701: 8953 8954 /* Line 1806 of yacc.c */ 8955 #line 2633 "parser.yy" 8956 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8957 break; 8958 8959 case 702: 8960 8961 /* Line 1806 of yacc.c */ 8962 #line 2635 "parser.yy" 8963 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8964 break; 8965 8966 case 703: 8967 8968 /* Line 1806 of yacc.c */ 8969 #line 2640 "parser.yy" 8756 8970 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8757 8971 break; 8758 8972 8759 case 647: 8760 8761 /* Line 1806 of yacc.c */ 8762 #line 2466 "parser.yy" 8763 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8764 break; 8765 8766 case 648: 8767 8768 /* Line 1806 of yacc.c */ 8769 #line 2468 "parser.yy" 8770 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8771 break; 8772 8773 case 649: 8774 8775 /* Line 1806 of yacc.c */ 8776 #line 2473 "parser.yy" 8777 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8778 break; 8779 8780 case 650: 8781 8782 /* Line 1806 of yacc.c */ 8783 #line 2475 "parser.yy" 8784 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8785 break; 8786 8787 case 651: 8788 8789 /* Line 1806 of yacc.c */ 8790 #line 2477 "parser.yy" 8791 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8792 break; 8793 8794 case 652: 8795 8796 /* Line 1806 of yacc.c */ 8797 #line 2479 "parser.yy" 8798 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8799 break; 8800 8801 case 653: 8802 8803 /* Line 1806 of yacc.c */ 8804 #line 2481 "parser.yy" 8973 case 704: 8974 8975 /* Line 1806 of yacc.c */ 8976 #line 2642 "parser.yy" 8805 8977 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8806 8978 break; 8807 8979 8808 case 655: 8809 8810 /* Line 1806 of yacc.c */ 8811 #line 2487 "parser.yy" 8812 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8813 break; 8814 8815 case 656: 8816 8817 /* Line 1806 of yacc.c */ 8818 #line 2489 "parser.yy" 8819 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8820 break; 8821 8822 case 657: 8823 8824 /* Line 1806 of yacc.c */ 8825 #line 2491 "parser.yy" 8826 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8827 break; 8828 8829 case 658: 8830 8831 /* Line 1806 of yacc.c */ 8832 #line 2496 "parser.yy" 8833 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8834 break; 8835 8836 case 659: 8837 8838 /* Line 1806 of yacc.c */ 8839 #line 2498 "parser.yy" 8840 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8841 break; 8842 8843 case 660: 8844 8845 /* Line 1806 of yacc.c */ 8846 #line 2500 "parser.yy" 8847 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8848 break; 8849 8850 case 661: 8851 8852 /* Line 1806 of yacc.c */ 8853 #line 2506 "parser.yy" 8854 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8855 break; 8856 8857 case 662: 8858 8859 /* Line 1806 of yacc.c */ 8860 #line 2508 "parser.yy" 8861 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8862 break; 8863 8864 case 664: 8865 8866 /* Line 1806 of yacc.c */ 8867 #line 2514 "parser.yy" 8868 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8869 break; 8870 8871 case 665: 8872 8873 /* Line 1806 of yacc.c */ 8874 #line 2516 "parser.yy" 8875 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8876 break; 8877 8878 case 666: 8879 8880 /* Line 1806 of yacc.c */ 8881 #line 2518 "parser.yy" 8882 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8883 break; 8884 8885 case 667: 8886 8887 /* Line 1806 of yacc.c */ 8888 #line 2520 "parser.yy" 8889 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8890 break; 8891 8892 case 669: 8893 8894 /* Line 1806 of yacc.c */ 8895 #line 2535 "parser.yy" 8896 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8897 break; 8898 8899 case 670: 8900 8901 /* Line 1806 of yacc.c */ 8902 #line 2537 "parser.yy" 8903 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8904 break; 8905 8906 case 671: 8907 8908 /* Line 1806 of yacc.c */ 8909 #line 2542 "parser.yy" 8910 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8911 break; 8912 8913 case 672: 8914 8915 /* Line 1806 of yacc.c */ 8916 #line 2544 "parser.yy" 8917 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8918 break; 8919 8920 case 673: 8921 8922 /* Line 1806 of yacc.c */ 8923 #line 2546 "parser.yy" 8924 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8925 break; 8926 8927 case 674: 8928 8929 /* Line 1806 of yacc.c */ 8930 #line 2548 "parser.yy" 8931 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8932 break; 8933 8934 case 675: 8935 8936 /* Line 1806 of yacc.c */ 8937 #line 2550 "parser.yy" 8938 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8939 break; 8940 8941 case 677: 8942 8943 /* Line 1806 of yacc.c */ 8944 #line 2556 "parser.yy" 8945 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8946 break; 8947 8948 case 678: 8949 8950 /* Line 1806 of yacc.c */ 8951 #line 2558 "parser.yy" 8952 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8953 break; 8954 8955 case 679: 8956 8957 /* Line 1806 of yacc.c */ 8958 #line 2560 "parser.yy" 8959 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8960 break; 8961 8962 case 680: 8963 8964 /* Line 1806 of yacc.c */ 8965 #line 2565 "parser.yy" 8966 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8967 break; 8968 8969 case 681: 8970 8971 /* Line 1806 of yacc.c */ 8972 #line 2567 "parser.yy" 8973 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8974 break; 8975 8976 case 682: 8977 8978 /* Line 1806 of yacc.c */ 8979 #line 2569 "parser.yy" 8980 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8981 break; 8982 8983 case 684: 8984 8985 /* Line 1806 of yacc.c */ 8986 #line 2576 "parser.yy" 8987 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8988 break; 8989 8990 case 686: 8991 8992 /* Line 1806 of yacc.c */ 8993 #line 2587 "parser.yy" 8994 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8995 break; 8996 8997 case 687: 8998 8999 /* Line 1806 of yacc.c */ 9000 #line 2590 "parser.yy" 8980 case 707: 8981 8982 /* Line 1806 of yacc.c */ 8983 #line 2652 "parser.yy" 8984 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8985 break; 8986 8987 case 710: 8988 8989 /* Line 1806 of yacc.c */ 8990 #line 2662 "parser.yy" 8991 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8992 break; 8993 8994 case 711: 8995 8996 /* Line 1806 of yacc.c */ 8997 #line 2664 "parser.yy" 8998 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8999 break; 9000 9001 case 712: 9002 9003 /* Line 1806 of yacc.c */ 9004 #line 2666 "parser.yy" 9005 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9006 break; 9007 9008 case 713: 9009 9010 /* Line 1806 of yacc.c */ 9011 #line 2668 "parser.yy" 9012 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9013 break; 9014 9015 case 714: 9016 9017 /* Line 1806 of yacc.c */ 9018 #line 2670 "parser.yy" 9019 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9020 break; 9021 9022 case 715: 9023 9024 /* Line 1806 of yacc.c */ 9025 #line 2672 "parser.yy" 9026 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9027 break; 9028 9029 case 716: 9030 9031 /* Line 1806 of yacc.c */ 9032 #line 2679 "parser.yy" 9033 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9034 break; 9035 9036 case 717: 9037 9038 /* Line 1806 of yacc.c */ 9039 #line 2681 "parser.yy" 9040 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9041 break; 9042 9043 case 718: 9044 9045 /* Line 1806 of yacc.c */ 9046 #line 2683 "parser.yy" 9047 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9048 break; 9049 9050 case 719: 9051 9052 /* Line 1806 of yacc.c */ 9053 #line 2685 "parser.yy" 9054 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9055 break; 9056 9057 case 720: 9058 9059 /* Line 1806 of yacc.c */ 9060 #line 2687 "parser.yy" 9061 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9062 break; 9063 9064 case 721: 9065 9066 /* Line 1806 of yacc.c */ 9067 #line 2689 "parser.yy" 9068 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9069 break; 9070 9071 case 722: 9072 9073 /* Line 1806 of yacc.c */ 9074 #line 2691 "parser.yy" 9075 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9076 break; 9077 9078 case 723: 9079 9080 /* Line 1806 of yacc.c */ 9081 #line 2693 "parser.yy" 9082 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9083 break; 9084 9085 case 724: 9086 9087 /* Line 1806 of yacc.c */ 9088 #line 2695 "parser.yy" 9089 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9090 break; 9091 9092 case 725: 9093 9094 /* Line 1806 of yacc.c */ 9095 #line 2697 "parser.yy" 9096 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9097 break; 9098 9099 case 726: 9100 9101 /* Line 1806 of yacc.c */ 9102 #line 2702 "parser.yy" 9001 9103 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9002 9104 break; 9003 9105 9004 case 688: 9005 9006 /* Line 1806 of yacc.c */ 9007 #line 2592 "parser.yy" 9008 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 9009 break; 9010 9011 case 689: 9012 9013 /* Line 1806 of yacc.c */ 9014 #line 2595 "parser.yy" 9106 case 727: 9107 9108 /* Line 1806 of yacc.c */ 9109 #line 2704 "parser.yy" 9015 9110 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9016 9111 break; 9017 9112 9018 case 690: 9019 9020 /* Line 1806 of yacc.c */ 9021 #line 2597 "parser.yy" 9022 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 9023 break; 9024 9025 case 691: 9026 9027 /* Line 1806 of yacc.c */ 9028 #line 2599 "parser.yy" 9029 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 9030 break; 9031 9032 case 693: 9033 9034 /* Line 1806 of yacc.c */ 9035 #line 2613 "parser.yy" 9036 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 9037 break; 9038 9039 case 694: 9040 9041 /* Line 1806 of yacc.c */ 9042 #line 2615 "parser.yy" 9043 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 9044 break; 9045 9046 case 695: 9047 9048 /* Line 1806 of yacc.c */ 9049 #line 2620 "parser.yy" 9050 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 9051 break; 9052 9053 case 696: 9054 9055 /* Line 1806 of yacc.c */ 9056 #line 2622 "parser.yy" 9057 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 9058 break; 9059 9060 case 697: 9061 9062 /* Line 1806 of yacc.c */ 9063 #line 2624 "parser.yy" 9064 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 9065 break; 9066 9067 case 698: 9068 9069 /* Line 1806 of yacc.c */ 9070 #line 2626 "parser.yy" 9071 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 9072 break; 9073 9074 case 699: 9075 9076 /* Line 1806 of yacc.c */ 9077 #line 2628 "parser.yy" 9078 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9079 break; 9080 9081 case 701: 9082 9083 /* Line 1806 of yacc.c */ 9084 #line 2634 "parser.yy" 9085 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9086 break; 9087 9088 case 702: 9089 9090 /* Line 1806 of yacc.c */ 9091 #line 2636 "parser.yy" 9092 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9093 break; 9094 9095 case 703: 9096 9097 /* Line 1806 of yacc.c */ 9098 #line 2638 "parser.yy" 9099 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9100 break; 9101 9102 case 704: 9103 9104 /* Line 1806 of yacc.c */ 9105 #line 2643 "parser.yy" 9106 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 9107 break; 9108 9109 case 705: 9110 9111 /* Line 1806 of yacc.c */ 9112 #line 2645 "parser.yy" 9113 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9114 break; 9115 9116 case 708: 9117 9118 /* Line 1806 of yacc.c */ 9119 #line 2655 "parser.yy" 9113 case 728: 9114 9115 /* Line 1806 of yacc.c */ 9116 #line 2709 "parser.yy" 9117 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9118 break; 9119 9120 case 729: 9121 9122 /* Line 1806 of yacc.c */ 9123 #line 2711 "parser.yy" 9124 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9125 break; 9126 9127 case 731: 9128 9129 /* Line 1806 of yacc.c */ 9130 #line 2738 "parser.yy" 9120 9131 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9121 9132 break; 9122 9133 9123 case 7 11:9124 9125 /* Line 1806 of yacc.c */ 9126 #line 2 665"parser.yy"9134 case 735: 9135 9136 /* Line 1806 of yacc.c */ 9137 #line 2749 "parser.yy" 9127 9138 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9128 9139 break; 9129 9140 9130 case 7 12:9131 9132 /* Line 1806 of yacc.c */ 9133 #line 2 667"parser.yy"9141 case 736: 9142 9143 /* Line 1806 of yacc.c */ 9144 #line 2751 "parser.yy" 9134 9145 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9135 9146 break; 9136 9147 9137 case 7 13:9138 9139 /* Line 1806 of yacc.c */ 9140 #line 2 669"parser.yy"9148 case 737: 9149 9150 /* Line 1806 of yacc.c */ 9151 #line 2753 "parser.yy" 9141 9152 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9142 9153 break; 9143 9154 9144 case 7 14:9145 9146 /* Line 1806 of yacc.c */ 9147 #line 2 671"parser.yy"9155 case 738: 9156 9157 /* Line 1806 of yacc.c */ 9158 #line 2755 "parser.yy" 9148 9159 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9149 9160 break; 9150 9161 9151 case 7 15:9152 9153 /* Line 1806 of yacc.c */ 9154 #line 2 673"parser.yy"9162 case 739: 9163 9164 /* Line 1806 of yacc.c */ 9165 #line 2757 "parser.yy" 9155 9166 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9156 9167 break; 9157 9168 9158 case 7 16:9159 9160 /* Line 1806 of yacc.c */ 9161 #line 2 675"parser.yy"9169 case 740: 9170 9171 /* Line 1806 of yacc.c */ 9172 #line 2759 "parser.yy" 9162 9173 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9163 9174 break; 9164 9175 9165 case 7 17:9166 9167 /* Line 1806 of yacc.c */ 9168 #line 2 682"parser.yy"9176 case 741: 9177 9178 /* Line 1806 of yacc.c */ 9179 #line 2766 "parser.yy" 9169 9180 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9170 9181 break; 9171 9182 9172 case 718: 9173 9174 /* Line 1806 of yacc.c */ 9175 #line 2684 "parser.yy" 9183 case 742: 9184 9185 /* Line 1806 of yacc.c */ 9186 #line 2768 "parser.yy" 9187 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9188 break; 9189 9190 case 743: 9191 9192 /* Line 1806 of yacc.c */ 9193 #line 2770 "parser.yy" 9176 9194 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9177 9195 break; 9178 9196 9179 case 719: 9180 9181 /* Line 1806 of yacc.c */ 9182 #line 2686 "parser.yy" 9197 case 744: 9198 9199 /* Line 1806 of yacc.c */ 9200 #line 2772 "parser.yy" 9201 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9202 break; 9203 9204 case 745: 9205 9206 /* Line 1806 of yacc.c */ 9207 #line 2774 "parser.yy" 9183 9208 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9184 9209 break; 9185 9210 9186 case 720: 9187 9188 /* Line 1806 of yacc.c */ 9189 #line 2688 "parser.yy" 9190 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9191 break; 9192 9193 case 721: 9194 9195 /* Line 1806 of yacc.c */ 9196 #line 2690 "parser.yy" 9211 case 746: 9212 9213 /* Line 1806 of yacc.c */ 9214 #line 2776 "parser.yy" 9197 9215 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9198 9216 break; 9199 9217 9200 case 722:9201 9202 /* Line 1806 of yacc.c */9203 #line 2692 "parser.yy"9204 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9205 break;9206 9207 case 723:9208 9209 /* Line 1806 of yacc.c */9210 #line 2694 "parser.yy"9211 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9212 break;9213 9214 case 724:9215 9216 /* Line 1806 of yacc.c */9217 #line 2696 "parser.yy"9218 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9219 break;9220 9221 case 725:9222 9223 /* Line 1806 of yacc.c */9224 #line 2698 "parser.yy"9225 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }9226 break;9227 9228 case 726:9229 9230 /* Line 1806 of yacc.c */9231 #line 2700 "parser.yy"9232 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9233 break;9234 9235 case 727:9236 9237 /* Line 1806 of yacc.c */9238 #line 2705 "parser.yy"9239 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }9240 break;9241 9242 case 728:9243 9244 /* Line 1806 of yacc.c */9245 #line 2707 "parser.yy"9246 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }9247 break;9248 9249 case 729:9250 9251 /* Line 1806 of yacc.c */9252 #line 2712 "parser.yy"9253 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }9254 break;9255 9256 case 730:9257 9258 /* Line 1806 of yacc.c */9259 #line 2714 "parser.yy"9260 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }9261 break;9262 9263 case 732:9264 9265 /* Line 1806 of yacc.c */9266 #line 2741 "parser.yy"9267 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }9268 break;9269 9270 case 736:9271 9272 /* Line 1806 of yacc.c */9273 #line 2752 "parser.yy"9274 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9275 break;9276 9277 case 737:9278 9279 /* Line 1806 of yacc.c */9280 #line 2754 "parser.yy"9281 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9282 break;9283 9284 case 738:9285 9286 /* Line 1806 of yacc.c */9287 #line 2756 "parser.yy"9288 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9289 break;9290 9291 case 739:9292 9293 /* Line 1806 of yacc.c */9294 #line 2758 "parser.yy"9295 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9296 break;9297 9298 case 740:9299 9300 /* Line 1806 of yacc.c */9301 #line 2760 "parser.yy"9302 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9303 break;9304 9305 case 741:9306 9307 /* Line 1806 of yacc.c */9308 #line 2762 "parser.yy"9309 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9310 break;9311 9312 case 742:9313 9314 /* Line 1806 of yacc.c */9315 #line 2769 "parser.yy"9316 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9317 break;9318 9319 case 743:9320 9321 /* Line 1806 of yacc.c */9322 #line 2771 "parser.yy"9323 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9324 break;9325 9326 case 744:9327 9328 /* Line 1806 of yacc.c */9329 #line 2773 "parser.yy"9330 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9331 break;9332 9333 case 745:9334 9335 /* Line 1806 of yacc.c */9336 #line 2775 "parser.yy"9337 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9338 break;9339 9340 case 746:9341 9342 /* Line 1806 of yacc.c */9343 #line 2777 "parser.yy"9344 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9345 break;9346 9347 9218 case 747: 9348 9219 9349 9220 /* Line 1806 of yacc.c */ 9350 #line 27 79"parser.yy"9351 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9221 #line 2781 "parser.yy" 9222 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9352 9223 break; 9353 9224 … … 9355 9226 9356 9227 /* Line 1806 of yacc.c */ 9357 #line 278 4"parser.yy"9358 { (yyval.decl) = DeclarationNode::new Tuple( (yyvsp[(3) - (5)].decl)); }9228 #line 2786 "parser.yy" 9229 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9359 9230 break; 9360 9231 … … 9362 9233 9363 9234 /* Line 1806 of yacc.c */ 9364 #line 278 9"parser.yy"9365 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }9235 #line 2788 "parser.yy" 9236 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9366 9237 break; 9367 9238 … … 9369 9240 9370 9241 /* Line 1806 of yacc.c */ 9371 #line 279 1"parser.yy"9242 #line 2790 "parser.yy" 9372 9243 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9373 9244 break; 9374 9245 9375 case 75 1:9376 9377 /* Line 1806 of yacc.c */ 9378 #line 2 793"parser.yy"9379 { (yyval. decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }9246 case 753: 9247 9248 /* Line 1806 of yacc.c */ 9249 #line 2814 "parser.yy" 9250 { (yyval.en) = 0; } 9380 9251 break; 9381 9252 … … 9383 9254 9384 9255 /* Line 1806 of yacc.c */ 9385 #line 2817 "parser.yy" 9386 { (yyval.en) = 0; } 9387 break; 9388 9389 case 755: 9390 9391 /* Line 1806 of yacc.c */ 9392 #line 2819 "parser.yy" 9256 #line 2816 "parser.yy" 9393 9257 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9394 9258 break; … … 9397 9261 9398 9262 /* Line 1806 of yacc.c */ 9399 #line 9 400"Parser/parser.cc"9263 #line 9264 "Parser/parser.cc" 9400 9264 default: break; 9401 9265 } … … 9628 9492 9629 9493 /* Line 2067 of yacc.c */ 9630 #line 28 22"parser.yy"9494 #line 2819 "parser.yy" 9631 9495 9632 9496 // ----end of grammar---- -
src/Parser/parser.h
rf80e0218 r1b5c81ed 262 262 263 263 /* Line 2068 of yacc.c */ 264 #line 11 0"parser.yy"264 #line 112 "parser.yy" 265 265 266 266 Token tok; -
src/Parser/parser.yy
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // cfa.y -- 8 // 7 // cfa.y -- 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 27 17:47:56201613 // Update Count : 1 62714 // 12 // Last Modified On : Wed Apr 13 16:58:43 2016 13 // Update Count : 1519 14 // 15 15 16 16 // This grammar is based on the ANSI99/11 C grammar, specifically parts of EXPRESSION and STATEMENTS, and on the C … … 31 31 // two levels of extensions. The first extensions cover most of the GCC C extensions, except for: 32 32 // 33 // 1. designation with and without '=' (use ':' instead) 34 // 2. attributes not allowed in parenthesis of declarator 33 // 1. nested functions 34 // 2. generalized lvalues 35 // 3. designation with and without '=' (use ':' instead) 36 // 4. attributes not allowed in parenthesis of declarator 35 37 // 36 38 // All of the syntactic extensions for GCC C are marked with the comment "GCC". The second extensions are for Cforall … … 77 79 %token TYPEOF LABEL // GCC 78 80 %token ENUM STRUCT UNION 79 %token OTYPE FTYPE DTYPE TRAIT // CFA81 %token OTYPE FTYPE DTYPE TRAIT // CFA 80 82 %token SIZEOF OFFSETOF 81 83 %token ATTRIBUTE EXTENSION // GCC … … 129 131 %type<constant> constant 130 132 %type<en> tuple tuple_expression_list 131 %type<en> ptrref_operatorunary_operator assignment_operator133 %type<en> unary_operator assignment_operator 132 134 %type<en> primary_expression postfix_expression unary_expression 133 135 %type<en> cast_expression multiplicative_expression additive_expression shift_expression … … 224 226 %type<decl> typedef type_array typedef_declaration typedef_declaration_specifier typedef_expression 225 227 %type<decl> type_function type_parameter_array type_parameter_function type_parameter_ptr 226 %type<decl> type_parameter_redeclarator type_ptr variable_type_redeclarator typedef_type_specifier228 %type<decl> type_parameter_redeclarator type_ptr type_redeclarator typedef_type_specifier 227 229 %type<decl> typegen_declaration_specifier typegen_type_specifier typegen_name 228 230 … … 350 352 primary_expression 351 353 | postfix_expression '[' push assignment_expression pop ']' 352 // CFA, comma_expression disallowed in th is context because it results in a commonuser error: subscripting a354 // CFA, comma_expression disallowed in the context because it results in a commom user error: subscripting a 353 355 // matrix with x[i,j] instead of x[i][j]. While this change is not backwards compatible, there seems to be 354 356 // little advantage to this feature and many disadvantages. It is possible to write x[(i,j)] in CFA, which is … … 421 423 unary_expression: 422 424 postfix_expression 423 // first location where constant/string can have operator applied: sizeof 3/sizeof "abc" still requires424 //semantics checks, e.g., ++3, 3--, *3, &&3425 // first location where constant/string can have operator applied: sizeof 3/sizeof "abc" 426 // still requires semantics checks, e.g., ++3, 3--, *3, &&3 425 427 | constant 426 428 { $$ = $1; } 427 429 | string_literal_list 428 430 { $$ = $1; } 429 | EXTENSION cast_expression // GCC430 { $$ = $2->set_extension( true ); }431 | ptrref_operator cast_expression // CFA432 { $$ = new CompositeExprNode( $1, $2 ); }433 // '*' ('&') is separated from unary_operator because of shift/reduce conflict in:434 // { * X; } // dereference X435 // { * int X; } // CFA declaration of pointer to int436 | unary_operator cast_expression437 { $$ = new CompositeExprNode( $1, $2 ); }438 431 | ICR unary_expression 439 432 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), $2 ); } 440 433 | DECR unary_expression 441 434 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), $2 ); } 435 | EXTENSION cast_expression // GCC 436 { $$ = $2; } 437 | unary_operator cast_expression 438 { $$ = new CompositeExprNode( $1, $2 ); } 439 | '!' cast_expression 440 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), $2 ); } 441 | '*' cast_expression // CFA 442 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), $2 ); } 443 // '*' is is separated from unary_operator because of shift/reduce conflict in: 444 // { * X; } // dereference X 445 // { * int X; } // CFA declaration of pointer to int 446 // '&' must be moved here if C++ reference variables are supported. 442 447 | SIZEOF unary_expression 443 448 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), $2 ); } … … 456 461 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 457 462 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( $3 ) ); } 458 // | ANDAND IDENTIFIER // GCC, address of label 459 // { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true ) ); } 460 ; 461 462 ptrref_operator: 463 '*' { $$ = new OperatorNode( OperatorNode::PointTo ); } 464 | '&' { $$ = new OperatorNode( OperatorNode::AddressOf ); } 465 // GCC, address of label must be handled by semantic check for ref,ref,label 466 | ANDAND { $$ = new OperatorNode( OperatorNode::And ); } 463 | ANDAND no_attr_identifier // GCC, address of label 464 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true ) ); } 467 465 ; 468 466 469 467 unary_operator: 470 '+' { $$ = new OperatorNode( OperatorNode::UnPlus ); } 468 '&' { $$ = new OperatorNode( OperatorNode::AddressOf ); } 469 | '+' { $$ = new OperatorNode( OperatorNode::UnPlus ); } 471 470 | '-' { $$ = new OperatorNode( OperatorNode::UnMinus ); } 472 | '!' { $$ = new OperatorNode( OperatorNode::Neg ); }473 471 | '~' { $$ = new OperatorNode( OperatorNode::BitNeg ); } 474 472 ; … … 648 646 Token fn; fn.str = new std::string( "^?{}" ); // location undefined 649 647 $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ), 650 (ExpressionNode *)( $2)->set_link( $4 ) ), 0 );648 (ExpressionNode *)(new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), $2 ))->set_link( $4 ) ), 0 ); 651 649 } 652 650 ; 653 651 654 652 labeled_statement: 655 // labels cannot be identifiers 0 or 1 656 IDENTIFIER ':' attribute_list_opt statement 653 no_attr_identifier ':' attribute_list_opt statement 657 654 { 658 655 $$ = $4->add_label( $1 ); … … 682 679 { $$ = new StatementNode( $1 ); } 683 680 | EXTENSION declaration // GCC 684 { $$ = new StatementNode( $2 ) /*->set_extension( true )*/; }681 { $$ = new StatementNode( $2 ); } 685 682 | function_definition 686 683 { $$ = new StatementNode( $1 ); } … … 807 804 808 805 jump_statement: 809 GOTO IDENTIFIER';'806 GOTO no_attr_identifier ';' 810 807 { $$ = new StatementNode( StatementNode::Goto, $2 ); } 811 808 | GOTO '*' comma_expression ';' // GCC, computed goto … … 816 813 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. 817 814 { $$ = new StatementNode( StatementNode::Continue ); } 818 | CONTINUE IDENTIFIER';' // CFA, multi-level continue815 | CONTINUE no_attr_identifier ';' // CFA, multi-level continue 819 816 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 820 817 // the target of the transfer appears only at the start of an iteration statement. … … 823 820 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. 824 821 { $$ = new StatementNode( StatementNode::Break ); } 825 | BREAK IDENTIFIER';' // CFA, multi-level exit822 | BREAK no_attr_identifier ';' // CFA, multi-level exit 826 823 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 827 824 // the target of the transfer appears only at the start of an iteration statement. … … 1472 1469 new_field_declaring_list ';' // CFA, new style field declaration 1473 1470 | EXTENSION new_field_declaring_list ';' // GCC 1474 { $$ = $2 /*->set_extension( true )*/; }1471 { $$ = $2; } 1475 1472 | field_declaring_list ';' 1476 1473 | EXTENSION field_declaring_list ';' // GCC 1477 { $$ = $2 /*->set_extension( true )*/; }1474 { $$ = $2; } 1478 1475 ; 1479 1476 … … 1503 1500 // A semantic check is required to ensure bit_subrange only appears on base type int. 1504 1501 { $$ = $1->addBitfield( $2 ); } 1505 | variable_type_redeclarator bit_subrange_size_opt1502 | type_redeclarator bit_subrange_size_opt 1506 1503 // A semantic check is required to ensure bit_subrange only appears on base type int. 1507 1504 { $$ = $1->addBitfield( $2 ); } … … 1705 1702 { $$ = $2; } 1706 1703 | ATassign initializer 1707 { $$ = $2 ->set_maybeConstructed( false ); }1704 { $$ = $2; } 1708 1705 ; 1709 1706 … … 1747 1744 1748 1745 designator: 1749 // lexer ambiguity: designator ".0" is floating-point constant or designator for name 0 only ".0" and ".1"1750 //allowed => semantic check1746 // lexer ambiguity: designator ".0" is floating-point constant or designator for name 0 1747 // only ".0" and ".1" allowed => semantic check 1751 1748 FLOATINGconstant 1752 1749 { $$ = new DesignatorNode( new VarRefNode( $1 ) ); } … … 1991 1988 } 1992 1989 | EXTENSION external_definition 1993 { $$ = $2 /*->set_extension( true )*/; }1990 { $$ = $2; } 1994 1991 ; 1995 1992 … … 1997 1994 function_definition 1998 1995 // These rules are a concession to the "implicit int" type_specifier because there is a significant amount of 1999 // legacy code with global functions missing the type-specifier for the return type, and assuming "int". 2000 // Parsing is possible because function_definition does not appear in the context of an expression (nested 2001 // functions preclude this concession, i.e., all nested function must have a return type). A function prototype 2002 // declaration must still have a type_specifier. OBSOLESCENT (see 1) 1996 // code with functions missing a type-specifier on the return type. Parsing is possible because 1997 // function_definition does not appear in the context of an expression (nested functions would preclude this 1998 // concession). A function prototype declaration must still have a type_specifier. OBSOLESCENT (see 1) 2003 1999 | function_declarator compound_statement 2004 2000 { … … 2078 2074 declarator: 2079 2075 variable_declarator 2080 | variable_type_redeclarator2081 2076 | function_declarator 2077 | type_redeclarator 2082 2078 ; 2083 2079 … … 2179 2175 2180 2176 variable_ptr: 2181 ptrref_operatorvariable_declarator2177 '*' variable_declarator 2182 2178 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2183 | ptrref_operatortype_qualifier_list variable_declarator2179 | '*' type_qualifier_list variable_declarator 2184 2180 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2185 2181 | '(' variable_ptr ')' … … 2205 2201 ; 2206 2202 2207 // This pattern parses a function declarator that is not redefining a typedef name. For non-nested functions, there is 2208 // no context where a function definition can redefine a typedef name, i.e., the typedef and function name cannot exist 2209 // is the same scope. The pattern precludes returning arrays and functions versus pointers to arrays and functions. 2203 // This pattern parses a function declarator that is not redefining a typedef name. Because functions cannot be nested, 2204 // there is no context where a function definition can redefine a typedef name. To allow nested functions requires 2205 // further separation of variable and function declarators in type_redeclarator. The pattern precludes returning 2206 // arrays and functions versus pointers to arrays and functions. 2210 2207 2211 2208 function_declarator: … … 2227 2224 2228 2225 function_ptr: 2229 ptrref_operatorfunction_declarator2226 '*' function_declarator 2230 2227 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2231 | ptrref_operatortype_qualifier_list function_declarator2228 | '*' type_qualifier_list function_declarator 2232 2229 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2233 2230 | '(' function_ptr ')' … … 2264 2261 2265 2262 old_function_ptr: 2266 ptrref_operatorold_function_declarator2263 '*' old_function_declarator 2267 2264 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2268 | ptrref_operatortype_qualifier_list old_function_declarator2265 | '*' type_qualifier_list old_function_declarator 2269 2266 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2270 2267 | '(' old_function_ptr ')' … … 2291 2288 // and functions versus pointers to arrays and functions. 2292 2289 2293 variable_type_redeclarator:2290 type_redeclarator: 2294 2291 paren_type attribute_list_opt 2295 2292 { $$ = $1->addQualifiers( $2 ); } … … 2308 2305 2309 2306 type_ptr: 2310 ptrref_operator variable_type_redeclarator2307 '*' type_redeclarator 2311 2308 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2312 | ptrref_operator type_qualifier_list variable_type_redeclarator2309 | '*' type_qualifier_list type_redeclarator 2313 2310 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2314 2311 | '(' type_ptr ')' … … 2352 2349 2353 2350 identifier_parameter_ptr: 2354 ptrref_operatoridentifier_parameter_declarator2351 '*' identifier_parameter_declarator 2355 2352 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2356 | ptrref_operatortype_qualifier_list identifier_parameter_declarator2353 | '*' type_qualifier_list identifier_parameter_declarator 2357 2354 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2358 2355 | '(' identifier_parameter_ptr ')' … … 2393 2390 // not as redundant parentheses around the identifier." 2394 2391 // 2395 // For example:2392 // which precludes the following cases: 2396 2393 // 2397 2394 // typedef float T; … … 2430 2427 2431 2428 type_parameter_ptr: 2432 ptrref_operatortype_parameter_redeclarator2429 '*' type_parameter_redeclarator 2433 2430 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2434 | ptrref_operatortype_qualifier_list type_parameter_redeclarator2431 | '*' type_qualifier_list type_parameter_redeclarator 2435 2432 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2436 2433 | '(' type_parameter_ptr ')' … … 2470 2467 2471 2468 abstract_ptr: 2472 ptrref_operator2469 '*' 2473 2470 { $$ = DeclarationNode::newPointer( 0 ); } 2474 | ptrref_operatortype_qualifier_list2471 | '*' type_qualifier_list 2475 2472 { $$ = DeclarationNode::newPointer( $2 ); } 2476 | ptrref_operatorabstract_declarator2473 | '*' abstract_declarator 2477 2474 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2478 | ptrref_operatortype_qualifier_list abstract_declarator2475 | '*' type_qualifier_list abstract_declarator 2479 2476 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2480 2477 | '(' abstract_ptr ')' … … 2539 2536 2540 2537 abstract_parameter_ptr: 2541 ptrref_operator2538 '*' 2542 2539 { $$ = DeclarationNode::newPointer( 0 ); } 2543 | ptrref_operatortype_qualifier_list2540 | '*' type_qualifier_list 2544 2541 { $$ = DeclarationNode::newPointer( $2 ); } 2545 | ptrref_operatorabstract_parameter_declarator2542 | '*' abstract_parameter_declarator 2546 2543 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2547 | ptrref_operatortype_qualifier_list abstract_parameter_declarator2544 | '*' type_qualifier_list abstract_parameter_declarator 2548 2545 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2549 2546 | '(' abstract_parameter_ptr ')' … … 2617 2614 2618 2615 variable_abstract_ptr: 2619 ptrref_operator2616 '*' 2620 2617 { $$ = DeclarationNode::newPointer( 0 ); } 2621 | ptrref_operatortype_qualifier_list2618 | '*' type_qualifier_list 2622 2619 { $$ = DeclarationNode::newPointer( $2 ); } 2623 | ptrref_operatorvariable_abstract_declarator2620 | '*' variable_abstract_declarator 2624 2621 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2625 | ptrref_operatortype_qualifier_list variable_abstract_declarator2622 | '*' type_qualifier_list variable_abstract_declarator 2626 2623 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2627 2624 | '(' variable_abstract_ptr ')' … … 2662 2659 2663 2660 new_identifier_parameter_ptr: // CFA 2664 ptrref_operatortype_specifier2661 '*' type_specifier 2665 2662 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2666 | type_qualifier_list ptrref_operatortype_specifier2663 | type_qualifier_list '*' type_specifier 2667 2664 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2668 | ptrref_operatornew_abstract_function2665 | '*' new_abstract_function 2669 2666 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2670 | type_qualifier_list ptrref_operatornew_abstract_function2667 | type_qualifier_list '*' new_abstract_function 2671 2668 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2672 | ptrref_operatornew_identifier_parameter_declarator_tuple2669 | '*' new_identifier_parameter_declarator_tuple 2673 2670 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2674 | type_qualifier_list ptrref_operatornew_identifier_parameter_declarator_tuple2671 | type_qualifier_list '*' new_identifier_parameter_declarator_tuple 2675 2672 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2676 2673 ; … … 2749 2746 2750 2747 new_abstract_ptr: // CFA 2751 ptrref_operatortype_specifier2748 '*' type_specifier 2752 2749 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2753 | type_qualifier_list ptrref_operatortype_specifier2750 | type_qualifier_list '*' type_specifier 2754 2751 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2755 | ptrref_operatornew_abstract_function2752 | '*' new_abstract_function 2756 2753 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2757 | type_qualifier_list ptrref_operatornew_abstract_function2754 | type_qualifier_list '*' new_abstract_function 2758 2755 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2759 | ptrref_operatornew_abstract_declarator_tuple2756 | '*' new_abstract_declarator_tuple 2760 2757 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2761 | type_qualifier_list ptrref_operatornew_abstract_declarator_tuple2758 | type_qualifier_list '*' new_abstract_declarator_tuple 2762 2759 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2763 2760 ; -
src/ResolvExpr/AlternativeFinder.cc
rf80e0218 r1b5c81ed 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sat May 16 23:52:08 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Mon Jun 13 16:13:54 201613 // Update Count : 2 511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Feb 10 17:00:04 2016 13 // Update Count : 24 14 14 // 15 15 … … 19 19 #include <functional> 20 20 #include <cassert> 21 #include <unordered_map>22 #include <utility>23 #include <vector>24 21 25 22 #include "AlternativeFinder.h" … … 42 39 #include "Tuples/NameMatcher.h" 43 40 #include "Common/utility.h" 44 #include "InitTweak/InitTweak.h"45 41 46 42 extern bool resolvep; … … 411 407 } 412 408 413 // /// Map of declaration uniqueIds (intended to be the assertions in an AssertionSet) to their parents and the number of times they've been included 414 //typedef std::unordered_map< UniqueId, std::unordered_map< UniqueId, unsigned > > AssertionParentSet; 415 416 static const int recursionLimit = /*10*/ 4; ///< Limit to depth of recursion satisfaction 417 //static const unsigned recursionParentLimit = 1; ///< Limit to the number of times an assertion can recursively use itself 409 static const int recursionLimit = 10; 418 410 419 411 void addToIndexer( AssertionSet &assertSet, SymTab::Indexer &indexer ) { … … 424 416 } 425 417 } 426 418 427 419 template< typename ForwardIterator, typename OutputIterator > 428 void inferRecursive( ForwardIterator begin, ForwardIterator end, const Alternative &newAlt, OpenVarSet &openVars, const SymTab::Indexer &decls, const AssertionSet &newNeed, /*const AssertionParentSet &needParents,*/ 429 int level, const SymTab::Indexer &indexer, OutputIterator out ) { 420 void inferRecursive( ForwardIterator begin, ForwardIterator end, const Alternative &newAlt, OpenVarSet &openVars, const SymTab::Indexer &decls, const AssertionSet &newNeed, int level, const SymTab::Indexer &indexer, OutputIterator out ) { 430 421 if ( begin == end ) { 431 422 if ( newNeed.empty() ) { … … 440 431 printAssertionSet( newNeed, std::cerr, 8 ); 441 432 ) 442 inferRecursive( newNeed.begin(), newNeed.end(), newAlt, openVars, decls, newerNeed, /*needParents,*/level+1, indexer, out );433 inferRecursive( newNeed.begin(), newNeed.end(), newAlt, openVars, decls, newerNeed, level+1, indexer, out ); 443 434 return; 444 435 } … … 447 438 ForwardIterator cur = begin++; 448 439 if ( ! cur->second ) { 449 inferRecursive( begin, end, newAlt, openVars, decls, newNeed, /*needParents,*/level, indexer, out );440 inferRecursive( begin, end, newAlt, openVars, decls, newNeed, level, indexer, out ); 450 441 } 451 442 DeclarationWithType *curDecl = cur->first; … … 464 455 std::cerr << std::endl; 465 456 ) 466 467 457 AssertionSet newHave, newerNeed( newNeed ); 468 458 TypeEnvironment newEnv( newAlt.env ); … … 487 477 newerAlt.env = newEnv; 488 478 assert( (*candidate)->get_uniqueId() ); 489 DeclarationWithType *candDecl = static_cast< DeclarationWithType* >( Declaration::declFromId( (*candidate)->get_uniqueId() ) ); 490 //AssertionParentSet newNeedParents( needParents ); 491 // skip repeatingly-self-recursive assertion satisfaction 492 // DOESN'T WORK: grandchild nodes conflict with their cousins 493 //if ( newNeedParents[ curDecl->get_uniqueId() ][ candDecl->get_uniqueId() ]++ > recursionParentLimit ) continue; 494 Expression *varExpr = new VariableExpr( candDecl ); 479 Expression *varExpr = new VariableExpr( static_cast< DeclarationWithType* >( Declaration::declFromId( (*candidate)->get_uniqueId() ) ) ); 495 480 deleteAll( varExpr->get_results() ); 496 481 varExpr->get_results().clear(); … … 506 491 // XXX: this is a memory leak, but adjType can't be deleted because it might contain assertions 507 492 appExpr->get_inferParams()[ curDecl->get_uniqueId() ] = ParamEntry( (*candidate)->get_uniqueId(), adjType->clone(), curDecl->get_type()->clone(), varExpr ); 508 inferRecursive( begin, end, newerAlt, newOpenVars, newDecls, newerNeed, /*newNeedParents,*/level, indexer, out );493 inferRecursive( begin, end, newerAlt, newOpenVars, newDecls, newerNeed, level, indexer, out ); 509 494 } else { 510 495 delete adjType; … … 528 513 addToIndexer( have, decls ); 529 514 AssertionSet newNeed; 530 //AssertionParentSet needParents; 531 inferRecursive( need.begin(), need.end(), newAlt, openVars, decls, newNeed, /*needParents,*/ 0, indexer, out ); 515 inferRecursive( need.begin(), need.end(), newAlt, openVars, decls, newNeed, 0, indexer, out ); 532 516 // PRINT( 533 517 // std::cerr << "declaration 14 is "; … … 562 546 563 547 { 564 std::string fname = InitTweak::getFunctionName( untypedExpr ); 565 if ( fname == "&&" ) { 548 NameExpr *fname = 0;; 549 if ( ( fname = dynamic_cast<NameExpr *>( untypedExpr->get_function())) 550 && ( fname->get_name() == std::string("&&")) ) { 566 551 VoidType v = Type::Qualifiers(); // resolve to type void * 567 552 PointerType pt( Type::Qualifiers(), v.clone() ); … … 772 757 for ( std::list< DeclarationWithType* >::iterator i = declList.begin(); i != declList.end(); ++i ) { 773 758 VariableExpr newExpr( *i, nameExpr->get_argName() ); 774 newExpr.set_extension( nameExpr->get_extension() );775 759 alternatives.push_back( Alternative( newExpr.clone(), env, Cost() ) ); 776 760 PRINT( … … 998 982 } // for 999 983 } 1000 1001 void AlternativeFinder::visit( ImplicitCopyCtorExpr * impCpCtorExpr ) {1002 alternatives.push_back( Alternative( impCpCtorExpr->clone(), env, Cost::zero ) );1003 }1004 984 } // namespace ResolvExpr 1005 985 -
src/ResolvExpr/AlternativeFinder.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // AlternativeFinder.h -- 7 // AlternativeFinder.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sat May 16 23:56:12 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Apr 19 11:44:53 201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 16 23:58:43 2015 13 13 // Update Count : 2 14 // 14 // 15 15 16 16 #ifndef ALTERNATIVEFINDER_H … … 54 54 virtual void visit( NameExpr *variableExpr ); 55 55 virtual void visit( VariableExpr *variableExpr ); 56 virtual void visit( ConstantExpr *constantExpr ); 56 virtual void visit( ConstantExpr *constantExpr ); 57 57 virtual void visit( SizeofExpr *sizeofExpr ); 58 58 virtual void visit( AlignofExpr *alignofExpr ); … … 65 65 virtual void visit( CommaExpr *commaExpr ); 66 66 virtual void visit( TupleExpr *tupleExpr ); 67 virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr );68 67 public: // xxx - temporary hack - should make Tuples::TupleAssignment a friend 69 68 template< typename InputIterator, typename OutputIterator > -
src/ResolvExpr/CommonType.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // CommonType.cc -- 7 // CommonType.cc -- 8 8 // 9 9 // Author : Richard C. Bilson … … 134 134 result = new BasicType( basicType->get_qualifiers() + otherBasic->get_qualifiers(), newType ); 135 135 } // if 136 } else if ( EnumInstType *enumInstType = dynamic_cast< EnumInstType * > ( type2 ) ) {137 // use signed int in lieu of the enum type138 BasicType::Kind newType = combinedType[ basicType->get_kind() ][ BasicType::SignedInt ];139 if ( ( ( newType == basicType->get_kind() && basicType->get_qualifiers() >= enumInstType->get_qualifiers() ) || widenFirst ) && ( ( newType != basicType->get_kind() && basicType->get_qualifiers() <= enumInstType->get_qualifiers() ) || widenSecond ) ) {140 result = new BasicType( basicType->get_qualifiers() + enumInstType->get_qualifiers(), newType );141 } // if142 136 } // if 143 137 } … … 189 183 } 190 184 191 void CommonType::visit( EnumInstType *enumInstType ) { 192 if ( dynamic_cast< BasicType * >( type2 ) ) { 193 // reuse BasicType, EnumInstType code by swapping type2 with enumInstType 194 Type * temp = type2; 195 type2 = enumInstType; 196 temp->accept( *this ); 197 type2 = temp; 198 } // if 185 void CommonType::visit( EnumInstType *aggregateUseType ) { 199 186 } 200 187 -
src/ResolvExpr/ConversionCost.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ConversionCost.cc -- 7 // ConversionCost.cc -- 8 8 // 9 9 // Author : Richard C. Bilson … … 157 157 cost = Cost( 0, 0, tableResult ); 158 158 } // if 159 } else if ( dynamic_cast< EnumInstType *>( dest ) ) { 160 // xxx - not positive this is correct, but appears to allow casting int => enum 161 cost = Cost( 1, 0, 0 ); 162 } // if 159 } // if 163 160 } 164 161 -
src/ResolvExpr/RenameVars.cc
rf80e0218 r1b5c81ed 45 45 void RenameVars::visit( PointerType *pointerType ) { 46 46 typeBefore( pointerType ); 47 /// std::cout << "do pointer" << std::endl; 47 48 maybeAccept( pointerType->get_base(), *this ); 49 /// std::cout << "done pointer" << std::endl; 48 50 typeAfter( pointerType ); 49 51 } … … 58 60 void RenameVars::visit( FunctionType *functionType ) { 59 61 typeBefore( functionType ); 62 /// std::cout << "return vals" << std::endl; 60 63 acceptAll( functionType->get_returnVals(), *this ); 64 /// std::cout << functionType->get_parameters().size() << " parameters" << std::endl; 61 65 acceptAll( functionType->get_parameters(), *this ); 66 /// std::cout << "done function" << std::endl; 62 67 typeAfter( functionType ); 63 68 } … … 90 95 void RenameVars::visit( TypeInstType *instType ) { 91 96 typeBefore( instType ); 97 /// std::cout << "instance of type " << instType->get_name() << std::endl; 92 98 std::map< std::string, std::string >::const_iterator i = mapStack.front().find( instType->get_name() ); 93 99 if ( i != mapStack.front().end() ) { 100 /// std::cout << "found name " << i->second << std::endl; 94 101 instType->set_name( i->second ); 95 102 } else { 103 /// std::cout << "no name found" << std::endl; 96 104 } // if 97 105 acceptAll( instType->get_parameters(), *this ); … … 112 120 void RenameVars::typeBefore( Type *type ) { 113 121 if ( ! type->get_forall().empty() ) { 122 /// std::cout << "type with forall: "; 123 /// type->print( std::cout ); 124 /// std::cout << std::endl; 114 125 // copies current name mapping into new mapping 115 126 mapStack.push_front( mapStack.front() ); -
src/ResolvExpr/Resolver.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Resolver.cc -- 7 // Resolver.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 12:17:01 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri May 13 11:36:40201613 // Update Count : 20311 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Mar 24 16:43:11 2016 13 // Update Count : 181 14 14 // 15 15 … … 25 25 #include "SymTab/Indexer.h" 26 26 #include "Common/utility.h" 27 #include "InitTweak/InitTweak.h"28 27 29 28 #include <iostream> … … 34 33 public: 35 34 Resolver() : SymTab::Indexer( false ), switchType( 0 ) {} 36 35 37 36 virtual void visit( FunctionDecl *functionDecl ); 38 37 virtual void visit( ObjectDecl *functionDecl ); 39 38 virtual void visit( TypeDecl *typeDecl ); 40 virtual void visit( EnumDecl * enumDecl );41 39 42 40 virtual void visit( ArrayType * at ); … … 53 51 virtual void visit( BranchStmt *branchStmt ); 54 52 virtual void visit( ReturnStmt *returnStmt ); 55 virtual void visit( ImplicitCtorDtorStmt * impCtorDtorStmt );56 53 57 54 virtual void visit( SingleInit *singleInit ); 58 55 virtual void visit( ListInit *listInit ); 59 virtual void visit( ConstructorInit *ctorInit );60 56 private: 61 57 typedef std::list< Initializer * >::iterator InitIterator; … … 63 59 void resolveAggrInit( AggregateDecl *, InitIterator &, InitIterator & ); 64 60 void resolveSingleAggrInit( Declaration *, InitIterator &, InitIterator & ); 65 void fallbackInit( ConstructorInit * ctorInit ); 61 66 62 std::list< Type * > functionReturn; 67 63 Type *initContext; 68 64 Type *switchType; 69 bool inEnumDecl = false;70 65 }; 71 66 … … 87 82 } 88 83 89 90 84 namespace { 91 85 void finishExpr( Expression *expr, const TypeEnvironment &env ) { … … 93 87 env.makeSubstitution( *expr->get_env() ); 94 88 } 95 } // namespace 96 97 Expression *findVoidExpression( Expression *untyped, const SymTab::Indexer &indexer ) { 98 global_renamer.reset(); 99 TypeEnvironment env; 100 Expression *newExpr = resolveInVoidContext( untyped, indexer, env ); 101 finishExpr( newExpr, env ); 102 return newExpr; 103 } 104 105 namespace { 89 90 Expression *findVoidExpression( Expression *untyped, const SymTab::Indexer &indexer ) { 91 global_renamer.reset(); 92 TypeEnvironment env; 93 Expression *newExpr = resolveInVoidContext( untyped, indexer, env ); 94 finishExpr( newExpr, env ); 95 return newExpr; 96 } 97 106 98 Expression *findSingleExpression( Expression *untyped, const SymTab::Indexer &indexer ) { 107 99 TypeEnvironment env; … … 134 126 } // if 135 127 } 136 128 137 129 Expression *findIntegralExpression( Expression *untyped, const SymTab::Indexer &indexer ) { 138 130 TypeEnvironment env; … … 167 159 return newExpr; 168 160 } 169 170 } 171 161 162 } 163 172 164 void Resolver::visit( ObjectDecl *objectDecl ) { 173 165 Type *new_type = resolveTypeof( objectDecl->get_type(), *this ); … … 180 172 Type *temp = initContext; 181 173 initContext = new_type; 182 if ( inEnumDecl && dynamic_cast< EnumInstType * >( initContext ) ) {183 // enumerator initializers should not use the enum type to initialize, since184 // the enum type is still incomplete at this point. Use signed int instead.185 initContext = new BasicType( Type::Qualifiers(), BasicType::SignedInt );186 }187 174 SymTab::Indexer::visit( objectDecl ); 188 if ( inEnumDecl && dynamic_cast< EnumInstType * >( initContext ) ) {189 // delete newly created signed int type190 delete initContext;191 }192 175 initContext = temp; 193 176 } … … 229 212 } 230 213 231 void Resolver::visit( EnumDecl * enumDecl ) {232 // in case we decide to allow nested enums233 bool oldInEnumDecl = inEnumDecl;234 inEnumDecl = true;235 SymTab::Indexer::visit( enumDecl );236 inEnumDecl = oldInEnumDecl;237 }238 239 214 void Resolver::visit( ExprStmt *exprStmt ) { 240 215 if ( exprStmt->get_expr() ) { … … 283 258 forStmt->set_condition( newExpr ); 284 259 } // if 285 260 286 261 if ( forStmt->get_increment() ) { 287 262 Expression * newExpr = findVoidExpression( forStmt->get_increment(), *this ); … … 297 272 delete switchStmt->get_condition(); 298 273 switchStmt->set_condition( newExpr ); 299 274 300 275 visitor.Visitor::visit( switchStmt ); 301 276 } … … 339 314 bool isCharType( T t ) { 340 315 if ( BasicType * bt = dynamic_cast< BasicType * >( t ) ) { 341 return bt->get_kind() == BasicType::Char || bt->get_kind() == BasicType::SignedChar || 316 return bt->get_kind() == BasicType::Char || bt->get_kind() == BasicType::SignedChar || 342 317 bt->get_kind() == BasicType::UnsignedChar; 343 318 } … … 351 326 string n = ne->get_name(); 352 327 if (n == "0") { 353 initContext = new BasicType(Type::Qualifiers(), 328 initContext = new BasicType(Type::Qualifiers(), 354 329 BasicType::SignedInt); 355 330 } else { … … 357 332 initContext = decl->get_type(); 358 333 } 359 } else if (ConstantExpr * e = 334 } else if (ConstantExpr * e = 360 335 dynamic_cast<ConstantExpr*>(singleInit->get_value())) { 361 336 Constant *c = e->get_constant(); … … 380 355 singleInit->set_value( ce->get_arg() ); 381 356 ce->set_arg( NULL ); 382 delete ce; 357 delete ce; 383 358 } 384 359 } … … 496 471 #endif 497 472 } 498 499 // ConstructorInit - fall back on C-style initializer500 void Resolver::fallbackInit( ConstructorInit * ctorInit ) {501 // could not find valid constructor, or found an intrinsic constructor502 // fall back on C-style initializer503 delete ctorInit->get_ctor();504 ctorInit->set_ctor( NULL );505 delete ctorInit->get_dtor();506 ctorInit->set_dtor( NULL );507 maybeAccept( ctorInit->get_init(), *this );508 }509 510 void Resolver::visit( ConstructorInit *ctorInit ) {511 try {512 maybeAccept( ctorInit->get_ctor(), *this );513 maybeAccept( ctorInit->get_dtor(), *this );514 } catch ( SemanticError ) {515 // no alternatives for the constructor initializer - fallback on C-style initializer516 // xxx - not sure if this makes a ton of sense - should maybe never be able to have this situation?517 fallbackInit( ctorInit );518 return;519 }520 521 // found a constructor - can get rid of C-style initializer522 delete ctorInit->get_init();523 ctorInit->set_init( NULL );524 525 // intrinsic single parameter constructors and destructors do nothing. Since this was526 // implicitly generated, there's no way for it to have side effects, so get rid of it527 // to clean up generated code.528 if ( InitTweak::isInstrinsicSingleArgCallStmt( ctorInit->get_ctor() ) ) {529 delete ctorInit->get_ctor();530 ctorInit->set_ctor( NULL );531 }532 if ( InitTweak::isInstrinsicSingleArgCallStmt( ctorInit->get_ctor() ) ) {533 delete ctorInit->get_dtor();534 ctorInit->set_dtor( NULL );535 }536 }537 538 void Resolver::visit( ImplicitCtorDtorStmt * impCtorDtorStmt ) {539 // before resolving ctor/dtor, need to remove type qualifiers from the first argument (the object being constructed).540 // Do this through a cast expression to greatly simplify the code.541 Expression * callExpr = InitTweak::getCtorDtorCall( impCtorDtorStmt );542 assert( callExpr );543 Expression *& constructee = InitTweak::getCallArg( callExpr, 0 );544 Type * type = 0;545 546 // need to find the type of the first argument, which is unfortunately not uniform since array construction547 // includes an untyped '+' expression.548 if ( UntypedExpr * plusExpr = dynamic_cast< UntypedExpr * >( constructee ) ) {549 // constructee is <array>+<index>550 // get Variable <array>, then get the base type of the VariableExpr - this is the type that needs to be fixed551 Expression * arr = InitTweak::getCallArg( plusExpr, 0 );552 assert( dynamic_cast< VariableExpr * >( arr ) );553 assert( arr && arr->get_results().size() == 1 );554 type = arr->get_results().front()->clone();555 } else {556 // otherwise, constructing a plain object, which means the object's address is being taken.557 // Need to get the type of the VariableExpr object, because the AddressExpr is rebuilt and uses the558 // type of the VariableExpr to do so.559 assert( constructee->get_results().size() == 1 );560 AddressExpr * addrExpr = dynamic_cast< AddressExpr * > ( constructee );561 assert( addrExpr && addrExpr->get_results().size() == 1);562 type = addrExpr->get_results().front()->clone();563 }564 // cast to T* with qualifiers removed.565 // unfortunately, lvalue is considered a qualifier. For AddressExpr to resolve, its argument566 // must have an lvalue qualified type, so remove all qualifiers except lvalue. If we ever567 // remove lvalue as a qualifier, this can change to568 // type->get_qualifiers() = Type::Qualifiers();569 Type * base = InitTweak::getPointerBase( type );570 assert( base );571 base->get_qualifiers() -= Type::Qualifiers(true, true, true, false, true, true);572 // if pointer has lvalue qualifier, cast won't appear in output573 type->set_isLvalue( false );574 constructee = new CastExpr( constructee, type );575 576 // finally, resolve the ctor/dtor577 impCtorDtorStmt->get_callStmt()->accept( *this );578 }579 473 } // namespace ResolvExpr 580 474 -
src/ResolvExpr/Resolver.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Resolver.h -- 7 // Resolver.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 12:18:34 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Thu Apr 14 15:06:53 201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun May 17 12:19:32 2015 13 13 // Update Count : 2 14 14 // … … 24 24 void resolve( std::list< Declaration * > translationUnit ); 25 25 Expression *resolveInVoidContext( Expression *expr, const SymTab::Indexer &indexer ); 26 Expression *findVoidExpression( Expression *untyped, const SymTab::Indexer &indexer );27 26 } // namespace ResolvExpr 28 27 -
src/ResolvExpr/typeops.h
rf80e0218 r1b5c81ed 54 54 55 55 // in AdjustExprType.cc 56 /// Replaces array types with the equivalent pointer, and function types with a pointer-to-function57 56 void adjustExprType( Type *&type, const TypeEnvironment &env, const SymTab::Indexer &indexer ); 58 57 -
src/SymTab/AddVisit.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // AddVisit.h -- 7 // AddVisit.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 16:14:32 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Thu Apr 14 15:52:42201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Apr 7 14:42:21 2016 13 13 // Update Count : 5 14 14 // … … 48 48 // maybeAccept( caseStmt->get_condition(), visitor ); 49 49 // } 50 51 template< typename Visitor >52 void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor, bool addBefore ) {53 std::list< Declaration * >::iterator i = translationUnit.begin();54 while ( i != translationUnit.end() ) {55 (*i)->accept( visitor );56 std::list< Declaration * >::iterator next = i;57 next++;58 if ( ! visitor.get_declsToAdd().empty() ) {59 translationUnit.splice( addBefore ? i : next, visitor.get_declsToAdd() );60 } // if61 i = next;62 } // while63 }64 65 50 } // namespace SymTab 66 51 -
src/SymTab/Indexer.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Indexer.cc -- 7 // Indexer.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:37:33 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri Apr 22 15:25:43201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:31:29 2016 13 13 // Update Count : 11 14 14 // … … 59 59 } 60 60 } 61 61 62 62 template< typename Decl > 63 63 void dump( const std::unordered_map< std::string, Decl* > &table, std::ostream &os ) { … … 66 66 } // for 67 67 } 68 68 69 69 struct Indexer::Impl { 70 70 Impl( unsigned long _scope ) : refCount(1), scope( _scope ), size( 0 ), base(), … … 76 76 unsigned long size; ///< Number of elements stored in this table 77 77 const Indexer base; ///< Base indexer this extends 78 78 79 79 IdTable idTable; ///< Identifier namespace 80 80 TypeTable typeTable; ///< Type namespace … … 213 213 void Indexer::visit( StructDecl *aggregateDecl ) { 214 214 // make up a forward declaration and add it before processing the members 215 // needs to be on the heap because addStruct saves the pointer 216 StructDecl &fwdDecl = *new StructDecl( aggregateDecl->get_name() ); 215 StructDecl fwdDecl( aggregateDecl->get_name() ); 217 216 cloneAll( aggregateDecl->get_parameters(), fwdDecl.get_parameters() ); 218 217 debugPrint( "Adding fwd decl for struct " << fwdDecl.get_name() << std::endl ); 219 218 addStruct( &fwdDecl ); 220 219 221 220 enterScope(); 222 221 acceptAll( aggregateDecl->get_parameters(), *this ); 223 222 acceptAll( aggregateDecl->get_members(), *this ); 224 223 leaveScope(); 225 224 226 225 debugPrint( "Adding struct " << aggregateDecl->get_name() << std::endl ); 227 226 // this addition replaces the forward declaration … … 235 234 debugPrint( "Adding fwd decl for union " << fwdDecl.get_name() << std::endl ); 236 235 addUnion( &fwdDecl ); 237 236 238 237 enterScope(); 239 238 acceptAll( aggregateDecl->get_parameters(), *this ); 240 239 acceptAll( aggregateDecl->get_members(), *this ); 241 240 leaveScope(); 242 241 243 242 debugPrint( "Adding union " << aggregateDecl->get_name() << std::endl ); 244 243 addUnion( aggregateDecl ); … … 257 256 acceptAll( aggregateDecl->get_members(), *this ); 258 257 leaveScope(); 259 258 260 259 debugPrint( "Adding context " << aggregateDecl->get_name() << std::endl ); 261 260 addTrait( aggregateDecl ); … … 439 438 } 440 439 441 440 442 441 443 442 void Indexer::lookupId( const std::string &id, std::list< DeclarationWithType* > &out ) const { 444 443 std::unordered_set< std::string > foundMangleNames; 445 444 446 445 Indexer::Impl *searchTables = tables; 447 446 while ( searchTables ) { … … 453 452 // mark the mangled name as found, skipping this insertion if a declaration for that name has already been found 454 453 if ( foundMangleNames.insert( decl->first ).second == false ) continue; 455 454 456 455 out.push_back( decl->second ); 457 456 } 458 457 } 459 458 460 459 // get declarations from base indexers 461 460 searchTables = searchTables->base.tables; … … 512 511 } 513 512 514 bool Indexer::hasIncompatibleCDecl( const std::string &id, const std::string &mangleName , unsigned long scope) const {513 bool Indexer::hasIncompatibleCDecl( const std::string &id, const std::string &mangleName ) const { 515 514 if ( ! tables ) return false; 516 if ( tables->scope < scope ) return false;517 515 518 516 IdTable::const_iterator decls = tables->idTable.find( id ); … … 520 518 const MangleTable &mangleTable = decls->second; 521 519 for ( MangleTable::const_iterator decl = mangleTable.begin(); decl != mangleTable.end(); ++decl ) { 522 // check for C decls with the same name, skipping 520 // check for C decls with the same name, skipping 523 521 // those with a compatible type (by mangleName) 524 522 if ( decl->second->get_linkage() == LinkageSpec::C && decl->first != mangleName ) return true; … … 526 524 } 527 525 528 return tables->base.hasIncompatibleCDecl( id, mangleName , scope);529 } 530 526 return tables->base.hasIncompatibleCDecl( id, mangleName ); 527 } 528 531 529 NamedTypeDecl *Indexer::lookupTypeAtScope( const std::string &id, unsigned long scope ) const { 532 530 if ( ! tables ) return 0; … … 536 534 return ret != tables->typeTable.end() ? ret->second : tables->base.lookupTypeAtScope( id, scope ); 537 535 } 538 536 539 537 StructDecl *Indexer::lookupStructAtScope( const std::string &id, unsigned long scope ) const { 540 538 if ( ! tables ) return 0; … … 544 542 return ret != tables->structTable.end() ? ret->second : tables->base.lookupStructAtScope( id, scope ); 545 543 } 546 544 547 545 EnumDecl *Indexer::lookupEnumAtScope( const std::string &id, unsigned long scope ) const { 548 546 if ( ! tables ) return 0; … … 552 550 return ret != tables->enumTable.end() ? ret->second : tables->base.lookupEnumAtScope( id, scope ); 553 551 } 554 552 555 553 UnionDecl *Indexer::lookupUnionAtScope( const std::string &id, unsigned long scope ) const { 556 554 if ( ! tables ) return 0; … … 560 558 return ret != tables->unionTable.end() ? ret->second : tables->base.lookupUnionAtScope( id, scope ); 561 559 } 562 560 563 561 TraitDecl *Indexer::lookupTraitAtScope( const std::string &id, unsigned long scope ) const { 564 562 if ( ! tables ) return 0; … … 603 601 return true; 604 602 } 605 603 606 604 void Indexer::addId( DeclarationWithType *decl ) { 607 605 makeWritable(); … … 619 617 DeclarationWithType *existing = lookupIdAtScope( name, mangleName, scope ); 620 618 if ( ! existing || ! addedIdConflicts( existing, decl ) ) { 621 // this ensures that no two declarations with the same unmangled name at the same scopeboth have C linkage622 if ( decl->get_linkage() == LinkageSpec::C && hasIncompatibleCDecl( name, mangleName , scope) ) {619 // this ensures that no two declarations with the same unmangled name both have C linkage 620 if ( decl->get_linkage() == LinkageSpec::C && hasIncompatibleCDecl( name, mangleName ) ) { 623 621 throw SemanticError( "invalid overload of C function ", decl ); 624 } // NOTE this is broken in Richard's original code in such a way that it never triggers (it 625 // doesn't check decls that have the same manglename, and all C-linkage decls are defined to 622 } // NOTE this is broken in Richard's original code in such a way that it never triggers (it 623 // doesn't check decls that have the same manglename, and all C-linkage decls are defined to 626 624 // have their name as their manglename, hence the error can never trigger). 627 // The code here is closer to correct, but name mangling would have to be completely 625 // The code here is closer to correct, but name mangling would have to be completely 628 626 // isomorphic to C type-compatibility, which it may not be. 629 627 630 628 tables->idTable[ name ][ mangleName ] = decl; 631 629 ++tables->size; … … 642 640 } 643 641 } 644 642 645 643 void Indexer::addType( NamedTypeDecl *decl ) { 646 644 makeWritable(); … … 673 671 addStruct( new StructDecl( id ) ); 674 672 } 675 673 676 674 void Indexer::addStruct( StructDecl *decl ) { 677 675 makeWritable(); … … 691 689 } 692 690 } 693 691 694 692 void Indexer::addEnum( EnumDecl *decl ) { 695 693 makeWritable(); … … 713 711 addUnion( new UnionDecl( id ) ); 714 712 } 715 713 716 714 void Indexer::addUnion( UnionDecl *decl ) { 717 715 makeWritable(); … … 731 729 } 732 730 } 733 731 734 732 void Indexer::addTrait( TraitDecl *decl ) { 735 733 makeWritable(); … … 752 750 void Indexer::enterScope() { 753 751 ++scope; 754 752 755 753 if ( doDebug ) { 756 754 std::cout << "--- Entering scope " << scope << std::endl; … … 785 783 using std::cerr; 786 784 787 if ( tables ) { 788 os << "--- scope " << tables->scope << " ---" << std::endl; 789 790 os << "===idTable===" << std::endl; 791 dump( tables->idTable, os ); 792 os << "===typeTable===" << std::endl; 793 dump( tables->typeTable, os ); 794 os << "===structTable===" << std::endl; 795 dump( tables->structTable, os ); 796 os << "===enumTable===" << std::endl; 797 dump( tables->enumTable, os ); 798 os << "===unionTable===" << std::endl; 799 dump( tables->unionTable, os ); 800 os << "===contextTable===" << std::endl; 801 dump( tables->traitTable, os ); 802 803 tables->base.print( os, indent ); 804 } else { 805 os << "--- end ---" << std::endl; 806 } 807 785 cerr << "===idTable===" << std::endl; 786 if ( tables ) dump( tables->idTable, os ); 787 cerr << "===typeTable===" << std::endl; 788 if ( tables ) dump( tables->typeTable, os ); 789 cerr << "===structTable===" << std::endl; 790 if ( tables ) dump( tables->structTable, os ); 791 cerr << "===enumTable===" << std::endl; 792 if ( tables ) dump( tables->enumTable, os ); 793 cerr << "===unionTable===" << std::endl; 794 if ( tables ) dump( tables->unionTable, os ); 795 cerr << "===contextTable===" << std::endl; 796 if ( tables ) dump( tables->traitTable, os ); 808 797 } 809 798 } // namespace SymTab -
src/SymTab/Indexer.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Indexer.h -- 7 // Indexer.h -- 8 8 // 9 9 // Author : Richard C. Bilson … … 33 33 Indexer& operator= ( Indexer &&that ); 34 34 35 using Visitor::visit;35 //using Visitor::visit; 36 36 virtual void visit( ObjectDecl *objectDecl ); 37 37 virtual void visit( FunctionDecl *functionDecl ); … … 54 54 virtual void visit( MemberExpr *memberExpr ); 55 55 virtual void visit( VariableExpr *variableExpr ); 56 virtual void visit( ConstantExpr *constantExpr ); 56 virtual void visit( ConstantExpr *constantExpr ); 57 57 virtual void visit( SizeofExpr *sizeofExpr ); 58 58 virtual void visit( AlignofExpr *alignofExpr ); … … 93 93 /// Gets the top-most trait declaration with the given ID 94 94 TraitDecl *lookupTrait( const std::string &id ) const; 95 95 96 96 void print( std::ostream &os, int indent = 0 ) const; 97 97 private: … … 99 99 DeclarationWithType *lookupIdAtScope( const std::string &id, const std::string &mangleName, unsigned long scope ) const; 100 100 /// returns true if there exists a declaration with C linkage and the given name with a different mangled name 101 bool hasIncompatibleCDecl( const std::string &id, const std::string &mangleName , unsigned long scope) const;101 bool hasIncompatibleCDecl( const std::string &id, const std::string &mangleName ) const; 102 102 // equivalents to lookup functions that only look at tables at scope `scope` (which should be >= tables->scope) 103 103 NamedTypeDecl *lookupTypeAtScope( const std::string &id, unsigned long scope ) const; … … 106 106 UnionDecl *lookupUnionAtScope( const std::string &id, unsigned long scope ) const; 107 107 TraitDecl *lookupTraitAtScope( const std::string &id, unsigned long scope ) const; 108 108 109 109 void addId( DeclarationWithType *decl ); 110 110 void addType( NamedTypeDecl *decl ); … … 115 115 void addUnion( UnionDecl *decl ); 116 116 void addTrait( TraitDecl *decl ); 117 117 118 118 struct Impl; 119 119 Impl *tables; ///< Copy-on-write instance of table data structure -
src/SymTab/Validate.cc
rf80e0218 r1b5c81ed 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:50:04 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed May 11 13:17:52201613 // Update Count : 2 9711 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 13 16:39:30 2016 13 // Update Count : 251 14 14 // 15 15 … … 56 56 #include "MakeLibCfa.h" 57 57 #include "TypeEquality.h" 58 #include "Autogen.h"59 58 #include "ResolvExpr/typeops.h" 60 59 … … 123 122 124 123 const Indexer *indexer; 124 }; 125 126 class AutogenerateRoutines : public Visitor { 127 public: 128 /// Generates assignment operators for aggregate types as required 129 static void autogenerateRoutines( std::list< Declaration * > &translationUnit ); 130 131 std::list< Declaration * > &get_declsToAdd() { return declsToAdd; } 132 133 virtual void visit( EnumDecl *enumDecl ); 134 virtual void visit( StructDecl *structDecl ); 135 virtual void visit( UnionDecl *structDecl ); 136 virtual void visit( TypeDecl *typeDecl ); 137 virtual void visit( TraitDecl *ctxDecl ); 138 virtual void visit( FunctionDecl *functionDecl ); 139 140 virtual void visit( FunctionType *ftype ); 141 virtual void visit( PointerType *ftype ); 142 143 virtual void visit( CompoundStmt *compoundStmt ); 144 virtual void visit( SwitchStmt *switchStmt ); 145 virtual void visit( ChooseStmt *chooseStmt ); 146 // virtual void visit( CaseStmt *caseStmt ); 147 148 AutogenerateRoutines() : functionNesting( 0 ) {} 149 private: 150 template< typename StmtClass > void visitStatement( StmtClass *stmt ); 151 152 std::list< Declaration * > declsToAdd; 153 std::set< std::string > structsDone; 154 unsigned int functionNesting; // current level of nested functions 125 155 }; 126 156 … … 162 192 template<typename AggDecl> 163 193 void addImplicitTypedef( AggDecl * aggDecl ); 164 194 165 195 typedef std::map< std::string, std::pair< TypedefDecl *, int > > TypedefMap; 166 196 TypedefMap typedefNames; 167 197 int scopeLevel; 168 198 }; 169 170 class VerifyCtorDtor : public Visitor {171 public:172 /// ensure that constructors and destructors have at least one173 /// parameter, the first of which must be a pointer, and no174 /// return values.175 static void verify( std::list< Declaration * > &translationUnit );176 177 virtual void visit( FunctionDecl *funcDecl );178 };179 199 180 200 class CompoundLiteral : public GenPoly::DeclMutator { … … 197 217 ReturnChecker::checkFunctionReturns( translationUnit ); 198 218 mutateAll( translationUnit, compoundliteral ); 199 autogenerateRoutines( translationUnit );219 AutogenerateRoutines::autogenerateRoutines( translationUnit ); 200 220 acceptAll( translationUnit, pass3 ); 201 VerifyCtorDtor::verify( translationUnit );202 221 } 203 222 … … 209 228 type->accept( pass2 ); 210 229 type->accept( pass3 ); 230 } 231 232 template< typename Visitor > 233 void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor, bool addBefore ) { 234 std::list< Declaration * >::iterator i = translationUnit.begin(); 235 while ( i != translationUnit.end() ) { 236 (*i)->accept( visitor ); 237 std::list< Declaration * >::iterator next = i; 238 next++; 239 if ( ! visitor.get_declsToAdd().empty() ) { 240 translationUnit.splice( addBefore ? i : next, visitor.get_declsToAdd() ); 241 } // if 242 i = next; 243 } // while 211 244 } 212 245 … … 279 312 void Pass1::visit( EnumDecl *enumDecl ) { 280 313 // Set the type of each member of the enumeration to be EnumConstant 314 281 315 for ( std::list< Declaration * >::iterator i = enumDecl->get_members().begin(); i != enumDecl->get_members().end(); ++i ) { 282 316 ObjectDecl * obj = dynamic_cast< ObjectDecl * >( *i ); 283 317 assert( obj ); 284 obj->set_type( new EnumInstType( Type::Qualifiers( true, false, false, false, false, false ), enumDecl->get_name() ) ); 318 // obj->set_type( new EnumInstType( Type::Qualifiers( true, false, false, false, false, false ), enumDecl->get_name() ) ); 319 BasicType * enumType = new BasicType( Type::Qualifiers(), BasicType::SignedInt ); 320 obj->set_type( enumType ) ; 285 321 } // for 286 322 Parent::visit( enumDecl ); … … 288 324 289 325 namespace { 290 template< typename DWT List>291 void fixFunctionList( DWT List & dwts, FunctionType *func ) {326 template< typename DWTIterator > 327 void fixFunctionList( DWTIterator begin, DWTIterator end, FunctionType *func ) { 292 328 // the only case in which "void" is valid is where it is the only one in the list; then it should be removed 293 329 // entirely other fix ups are handled by the FixFunction class 294 typedef typename DWTList::iterator DWTIterator;295 DWTIterator begin( dwts.begin() ), end( dwts.end() );296 330 if ( begin == end ) return; 297 331 FixFunction fixer; 298 332 DWTIterator i = begin; 299 *i = (*i )->acceptMutator( fixer );333 *i = (*i )->acceptMutator( fixer ); 300 334 if ( fixer.get_isVoid() ) { 301 335 DWTIterator j = i; 302 336 ++i; 303 dwts.erase( j );337 func->get_parameters().erase( j ); 304 338 if ( i != end ) { 305 339 throw SemanticError( "invalid type void in function type ", func ); … … 320 354 void Pass1::visit( FunctionType *func ) { 321 355 // Fix up parameters and return types 322 fixFunctionList( func->get_parameters() , func );323 fixFunctionList( func->get_returnVals() , func );356 fixFunctionList( func->get_parameters().begin(), func->get_parameters().end(), func ); 357 fixFunctionList( func->get_returnVals().begin(), func->get_returnVals().end(), func ); 324 358 Visitor::visit( func ); 325 359 } … … 384 418 385 419 void Pass2::visit( StructDecl *structDecl ) { 386 // visit struct members first so that the types of self-referencing members are updated properly387 Parent::visit( structDecl );388 420 if ( ! structDecl->get_members().empty() ) { 389 421 ForwardStructsType::iterator fwds = forwardStructs.find( structDecl->get_name() ); … … 395 427 } // if 396 428 } // if 429 Indexer::visit( structDecl ); 397 430 } 398 431 399 432 void Pass2::visit( UnionDecl *unionDecl ) { 400 Parent::visit( unionDecl );401 433 if ( ! unionDecl->get_members().empty() ) { 402 434 ForwardUnionsType::iterator fwds = forwardUnions.find( unionDecl->get_name() ); … … 408 440 } // if 409 441 } // if 442 Indexer::visit( unionDecl ); 410 443 } 411 444 … … 470 503 } 471 504 505 static const std::list< std::string > noLabels; 506 507 void AutogenerateRoutines::autogenerateRoutines( std::list< Declaration * > &translationUnit ) { 508 AutogenerateRoutines visitor; 509 acceptAndAdd( translationUnit, visitor, false ); 510 } 511 512 template< typename OutputIterator > 513 void makeScalarAssignment( ObjectDecl *srcParam, ObjectDecl *dstParam, DeclarationWithType *member, OutputIterator out ) { 514 ObjectDecl *obj = dynamic_cast<ObjectDecl *>( member ); 515 // unnamed bit fields are not copied as they cannot be accessed 516 if ( obj != NULL && obj->get_name() == "" && obj->get_bitfieldWidth() != NULL ) return; 517 518 UntypedExpr *assignExpr = new UntypedExpr( new NameExpr( "?=?" ) ); 519 520 UntypedExpr *derefExpr = new UntypedExpr( new NameExpr( "*?" ) ); 521 derefExpr->get_args().push_back( new VariableExpr( dstParam ) ); 522 523 // do something special for unnamed members 524 Expression *dstselect = new AddressExpr( new MemberExpr( member, derefExpr ) ); 525 assignExpr->get_args().push_back( dstselect ); 526 527 Expression *srcselect = new MemberExpr( member, new VariableExpr( srcParam ) ); 528 assignExpr->get_args().push_back( srcselect ); 529 530 *out++ = new ExprStmt( noLabels, assignExpr ); 531 } 532 533 template< typename OutputIterator > 534 void makeArrayAssignment( ObjectDecl *srcParam, ObjectDecl *dstParam, DeclarationWithType *member, ArrayType *array, OutputIterator out ) { 535 static UniqueName indexName( "_index" ); 536 537 // for a flexible array member nothing is done -- user must define own assignment 538 if ( ! array->get_dimension() ) return; 539 540 ObjectDecl *index = new ObjectDecl( indexName.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 ); 541 *out++ = new DeclStmt( noLabels, index ); 542 543 UntypedExpr *init = new UntypedExpr( new NameExpr( "?=?" ) ); 544 init->get_args().push_back( new AddressExpr( new VariableExpr( index ) ) ); 545 init->get_args().push_back( new NameExpr( "0" ) ); 546 Statement *initStmt = new ExprStmt( noLabels, init ); 547 std::list<Statement *> initList; 548 initList.push_back( initStmt ); 549 550 UntypedExpr *cond = new UntypedExpr( new NameExpr( "?<?" ) ); 551 cond->get_args().push_back( new VariableExpr( index ) ); 552 cond->get_args().push_back( array->get_dimension()->clone() ); 553 554 UntypedExpr *inc = new UntypedExpr( new NameExpr( "++?" ) ); 555 inc->get_args().push_back( new AddressExpr( new VariableExpr( index ) ) ); 556 557 UntypedExpr *assignExpr = new UntypedExpr( new NameExpr( "?=?" ) ); 558 559 UntypedExpr *derefExpr = new UntypedExpr( new NameExpr( "*?" ) ); 560 derefExpr->get_args().push_back( new VariableExpr( dstParam ) ); 561 562 Expression *dstselect = new MemberExpr( member, derefExpr ); 563 UntypedExpr *dstIndex = new UntypedExpr( new NameExpr( "?+?" ) ); 564 dstIndex->get_args().push_back( dstselect ); 565 dstIndex->get_args().push_back( new VariableExpr( index ) ); 566 assignExpr->get_args().push_back( dstIndex ); 567 568 Expression *srcselect = new MemberExpr( member, new VariableExpr( srcParam ) ); 569 UntypedExpr *srcIndex = new UntypedExpr( new NameExpr( "?[?]" ) ); 570 srcIndex->get_args().push_back( srcselect ); 571 srcIndex->get_args().push_back( new VariableExpr( index ) ); 572 assignExpr->get_args().push_back( srcIndex ); 573 574 *out++ = new ForStmt( noLabels, initList, cond, inc, new ExprStmt( noLabels, assignExpr ) ); 575 } 576 577 template< typename OutputIterator > 578 void makeUnionFieldsAssignment( ObjectDecl *srcParam, ObjectDecl *dstParam, UnionInstType *unionType, OutputIterator out ) { 579 UntypedExpr *copy = new UntypedExpr( new NameExpr( "__builtin_memcpy" ) ); 580 copy->get_args().push_back( new VariableExpr( dstParam ) ); 581 copy->get_args().push_back( new AddressExpr( new VariableExpr( srcParam ) ) ); 582 copy->get_args().push_back( new SizeofExpr( unionType ) ); 583 584 *out++ = new ExprStmt( noLabels, copy ); 585 } 586 587 //E ?=?(E volatile*, int), 588 // ?=?(E _Atomic volatile*, int); 589 void makeEnumAssignment( EnumDecl *enumDecl, EnumInstType *refType, unsigned int functionNesting, std::list< Declaration * > &declsToAdd ) { 590 FunctionType *assignType = new FunctionType( Type::Qualifiers(), false ); 591 592 ObjectDecl *returnVal = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 ); 593 assignType->get_returnVals().push_back( returnVal ); 594 595 // need two assignment operators with different types 596 FunctionType * assignType2 = assignType->clone(); 597 598 // E ?=?(E volatile *, E) 599 Type *etype = refType->clone(); 600 // etype->get_qualifiers() += Type::Qualifiers(false, true, false, false, false, false); 601 602 ObjectDecl *dstParam = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), etype ), 0 ); 603 assignType->get_parameters().push_back( dstParam ); 604 605 ObjectDecl *srcParam = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, etype->clone(), 0 ); 606 assignType->get_parameters().push_back( srcParam ); 607 608 // E ?=?(E volatile *, int) 609 assignType2->get_parameters().push_back( dstParam->clone() ); 610 BasicType * paramType = new BasicType(Type::Qualifiers(), BasicType::SignedInt); 611 ObjectDecl *srcParam2 = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, paramType, 0 ); 612 assignType2->get_parameters().push_back( srcParam2 ); 613 614 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units 615 // because each unit generates copies of the default routines for each aggregate. 616 617 // since there is no definition, these should not be inline 618 // make these intrinsic so that the code generator does not make use of them 619 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::Intrinsic, assignType, 0, false, false ); 620 assignDecl->fixUniqueId(); 621 FunctionDecl *assignDecl2 = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::Intrinsic, assignType2, 0, false, false ); 622 assignDecl2->fixUniqueId(); 623 624 // these should be built in the same way that the prelude 625 // functions are, so build a list containing the prototypes 626 // and allow MakeLibCfa to autogenerate the bodies. 627 std::list< Declaration * > assigns; 628 assigns.push_back( assignDecl ); 629 assigns.push_back( assignDecl2 ); 630 631 LibCfa::makeLibCfa( assigns ); 632 633 // need to remove the prototypes, since this may be nested in a routine 634 for (int start = 0, end = assigns.size()/2; start < end; start++) { 635 delete assigns.front(); 636 assigns.pop_front(); 637 } // for 638 639 declsToAdd.insert( declsToAdd.begin(), assigns.begin(), assigns.end() ); 640 } 641 642 /// Clones a reference type, replacing any parameters it may have with a clone of the provided list 643 template< typename GenericInstType > 644 GenericInstType *cloneWithParams( GenericInstType *refType, const std::list< Expression* >& params ) { 645 GenericInstType *clone = refType->clone(); 646 clone->get_parameters().clear(); 647 cloneAll( params, clone->get_parameters() ); 648 return clone; 649 } 650 651 /// Creates a new type decl that's the same as src, but renamed and with only the ?=? assertion (for complete types only) 652 TypeDecl *cloneAndRename( TypeDecl *src, const std::string &name ) { 653 TypeDecl *dst = new TypeDecl( name, src->get_storageClass(), 0, src->get_kind() ); 654 655 if ( src->get_kind() == TypeDecl::Any ) { 656 // just include assignment operator assertion 657 TypeInstType *assignParamType = new TypeInstType( Type::Qualifiers(), name, dst ); 658 FunctionType *assignFunctionType = new FunctionType( Type::Qualifiers(), false ); 659 assignFunctionType->get_returnVals().push_back( 660 new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, assignParamType->clone(), 0 ) ); 661 assignFunctionType->get_parameters().push_back( 662 new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), assignParamType->clone() ), 0 ) ); 663 assignFunctionType->get_parameters().push_back( 664 new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, assignParamType, 0 ) ); 665 FunctionDecl *assignAssert = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignFunctionType, 0, false, false ); 666 dst->get_assertions().push_back( assignAssert ); 667 } 668 669 return dst; 670 } 671 672 Declaration *makeStructAssignment( StructDecl *aggregateDecl, StructInstType *refType, unsigned int functionNesting ) { 673 FunctionType *assignType = new FunctionType( Type::Qualifiers(), false ); 674 675 // Make function polymorphic in same parameters as generic struct, if applicable 676 bool isGeneric = false; // NOTE this flag is an incredibly ugly kludge; we should fix the assignment signature instead (ditto for union) 677 std::list< TypeDecl* >& genericParams = aggregateDecl->get_parameters(); 678 std::list< Expression* > structParams; // List of matching parameters to put on types 679 TypeSubstitution genericSubs; // Substitutions to make to member types of struct 680 for ( std::list< TypeDecl* >::const_iterator param = genericParams.begin(); param != genericParams.end(); ++param ) { 681 isGeneric = true; 682 TypeDecl *typeParam = cloneAndRename( *param, "_autoassign_" + aggregateDecl->get_name() + "_" + (*param)->get_name() ); 683 assignType->get_forall().push_back( typeParam ); 684 TypeInstType *newParamType = new TypeInstType( Type::Qualifiers(), typeParam->get_name(), typeParam ); 685 genericSubs.add( (*param)->get_name(), newParamType ); 686 structParams.push_back( new TypeExpr( newParamType ) ); 687 } 688 689 ObjectDecl *returnVal = new ObjectDecl( "_ret", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, cloneWithParams( refType, structParams ), 0 ); 690 assignType->get_returnVals().push_back( returnVal ); 691 692 ObjectDecl *dstParam = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), cloneWithParams( refType, structParams ) ), 0 ); 693 assignType->get_parameters().push_back( dstParam ); 694 695 ObjectDecl *srcParam = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, cloneWithParams( refType, structParams ), 0 ); 696 assignType->get_parameters().push_back( srcParam ); 697 698 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units 699 // because each unit generates copies of the default routines for each aggregate. 700 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true, false ); 701 assignDecl->fixUniqueId(); 702 703 for ( std::list< Declaration * >::const_iterator member = aggregateDecl->get_members().begin(); member != aggregateDecl->get_members().end(); ++member ) { 704 if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType * >( *member ) ) { 705 // query the type qualifiers of this field and skip assigning it if it is marked const. 706 // If it is an array type, we need to strip off the array layers to find its qualifiers. 707 Type * type = dwt->get_type(); 708 while ( ArrayType * at = dynamic_cast< ArrayType * >( type ) ) { 709 type = at->get_base(); 710 } 711 712 if ( type->get_qualifiers().isConst ) { 713 // don't assign const members 714 continue; 715 } 716 717 if ( isGeneric ) { 718 // rewrite member type in terms of the type variables on this operator 719 DeclarationWithType *fixedMember = dwt->clone(); 720 genericSubs.apply( fixedMember ); 721 722 // assign to both destination and return value 723 if ( ArrayType *array = dynamic_cast< ArrayType * >( fixedMember->get_type() ) ) { 724 makeArrayAssignment( srcParam, dstParam, fixedMember, array, back_inserter( assignDecl->get_statements()->get_kids() ) ); 725 makeArrayAssignment( srcParam, returnVal, fixedMember, array, back_inserter( assignDecl->get_statements()->get_kids() ) ); 726 } else { 727 makeScalarAssignment( srcParam, dstParam, fixedMember, back_inserter( assignDecl->get_statements()->get_kids() ) ); 728 makeScalarAssignment( srcParam, returnVal, fixedMember, back_inserter( assignDecl->get_statements()->get_kids() ) ); 729 } // if 730 } else { 731 // assign to destination 732 if ( ArrayType *array = dynamic_cast< ArrayType * >( dwt->get_type() ) ) { 733 makeArrayAssignment( srcParam, dstParam, dwt, array, back_inserter( assignDecl->get_statements()->get_kids() ) ); 734 } else { 735 makeScalarAssignment( srcParam, dstParam, dwt, back_inserter( assignDecl->get_statements()->get_kids() ) ); 736 } // if 737 } // if 738 } // if 739 } // for 740 if ( ! isGeneric ) assignDecl->get_statements()->get_kids().push_back( new ReturnStmt( noLabels, new VariableExpr( srcParam ) ) ); 741 742 return assignDecl; 743 } 744 745 Declaration *makeUnionAssignment( UnionDecl *aggregateDecl, UnionInstType *refType, unsigned int functionNesting ) { 746 FunctionType *assignType = new FunctionType( Type::Qualifiers(), false ); 747 748 // Make function polymorphic in same parameters as generic union, if applicable 749 bool isGeneric = false; // NOTE this flag is an incredibly ugly kludge; we should fix the assignment signature instead (ditto for struct) 750 std::list< TypeDecl* >& genericParams = aggregateDecl->get_parameters(); 751 std::list< Expression* > unionParams; // List of matching parameters to put on types 752 for ( std::list< TypeDecl* >::const_iterator param = genericParams.begin(); param != genericParams.end(); ++param ) { 753 isGeneric = true; 754 TypeDecl *typeParam = cloneAndRename( *param, "_autoassign_" + aggregateDecl->get_name() + "_" + (*param)->get_name() ); 755 assignType->get_forall().push_back( typeParam ); 756 unionParams.push_back( new TypeExpr( new TypeInstType( Type::Qualifiers(), typeParam->get_name(), typeParam ) ) ); 757 } 758 759 ObjectDecl *returnVal = new ObjectDecl( "_ret", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, cloneWithParams( refType, unionParams ), 0 ); 760 assignType->get_returnVals().push_back( returnVal ); 761 762 ObjectDecl *dstParam = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), cloneWithParams( refType, unionParams ) ), 0 ); 763 assignType->get_parameters().push_back( dstParam ); 764 765 ObjectDecl *srcParam = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, cloneWithParams( refType, unionParams ), 0 ); 766 assignType->get_parameters().push_back( srcParam ); 767 768 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units 769 // because each unit generates copies of the default routines for each aggregate. 770 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true, false ); 771 assignDecl->fixUniqueId(); 772 773 makeUnionFieldsAssignment( srcParam, dstParam, cloneWithParams( refType, unionParams ), back_inserter( assignDecl->get_statements()->get_kids() ) ); 774 if ( isGeneric ) makeUnionFieldsAssignment( srcParam, returnVal, cloneWithParams( refType, unionParams ), back_inserter( assignDecl->get_statements()->get_kids() ) ); 775 776 if ( ! isGeneric ) assignDecl->get_statements()->get_kids().push_back( new ReturnStmt( noLabels, new VariableExpr( srcParam ) ) ); 777 778 return assignDecl; 779 } 780 781 void AutogenerateRoutines::visit( EnumDecl *enumDecl ) { 782 if ( ! enumDecl->get_members().empty() ) { 783 EnumInstType *enumInst = new EnumInstType( Type::Qualifiers(), enumDecl->get_name() ); 784 // enumInst->set_baseEnum( enumDecl ); 785 // declsToAdd.push_back( 786 makeEnumAssignment( enumDecl, enumInst, functionNesting, declsToAdd ); 787 } 788 } 789 790 void AutogenerateRoutines::visit( StructDecl *structDecl ) { 791 if ( ! structDecl->get_members().empty() && structsDone.find( structDecl->get_name() ) == structsDone.end() ) { 792 StructInstType structInst( Type::Qualifiers(), structDecl->get_name() ); 793 structInst.set_baseStruct( structDecl ); 794 declsToAdd.push_back( makeStructAssignment( structDecl, &structInst, functionNesting ) ); 795 structsDone.insert( structDecl->get_name() ); 796 } // if 797 } 798 799 void AutogenerateRoutines::visit( UnionDecl *unionDecl ) { 800 if ( ! unionDecl->get_members().empty() ) { 801 UnionInstType unionInst( Type::Qualifiers(), unionDecl->get_name() ); 802 unionInst.set_baseUnion( unionDecl ); 803 declsToAdd.push_back( makeUnionAssignment( unionDecl, &unionInst, functionNesting ) ); 804 } // if 805 } 806 807 void AutogenerateRoutines::visit( TypeDecl *typeDecl ) { 808 CompoundStmt *stmts = 0; 809 TypeInstType *typeInst = new TypeInstType( Type::Qualifiers(), typeDecl->get_name(), false ); 810 typeInst->set_baseType( typeDecl ); 811 ObjectDecl *src = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, typeInst->clone(), 0 ); 812 ObjectDecl *dst = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), typeInst->clone() ), 0 ); 813 if ( typeDecl->get_base() ) { 814 stmts = new CompoundStmt( std::list< Label >() ); 815 UntypedExpr *assign = new UntypedExpr( new NameExpr( "?=?" ) ); 816 assign->get_args().push_back( new CastExpr( new VariableExpr( dst ), new PointerType( Type::Qualifiers(), typeDecl->get_base()->clone() ) ) ); 817 assign->get_args().push_back( new CastExpr( new VariableExpr( src ), typeDecl->get_base()->clone() ) ); 818 stmts->get_kids().push_back( new ReturnStmt( std::list< Label >(), assign ) ); 819 } // if 820 FunctionType *type = new FunctionType( Type::Qualifiers(), false ); 821 type->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, typeInst, 0 ) ); 822 type->get_parameters().push_back( dst ); 823 type->get_parameters().push_back( src ); 824 FunctionDecl *func = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false, false ); 825 declsToAdd.push_back( func ); 826 } 827 828 void addDecls( std::list< Declaration * > &declsToAdd, std::list< Statement * > &statements, std::list< Statement * >::iterator i ) { 829 for ( std::list< Declaration * >::iterator decl = declsToAdd.begin(); decl != declsToAdd.end(); ++decl ) { 830 statements.insert( i, new DeclStmt( noLabels, *decl ) ); 831 } // for 832 declsToAdd.clear(); 833 } 834 835 void AutogenerateRoutines::visit( FunctionType *) { 836 // ensure that we don't add assignment ops for types defined as part of the function 837 } 838 839 void AutogenerateRoutines::visit( PointerType *) { 840 // ensure that we don't add assignment ops for types defined as part of the pointer 841 } 842 843 void AutogenerateRoutines::visit( TraitDecl *) { 844 // ensure that we don't add assignment ops for types defined as part of the context 845 } 846 847 template< typename StmtClass > 848 inline void AutogenerateRoutines::visitStatement( StmtClass *stmt ) { 849 std::set< std::string > oldStructs = structsDone; 850 addVisit( stmt, *this ); 851 structsDone = oldStructs; 852 } 853 854 void AutogenerateRoutines::visit( FunctionDecl *functionDecl ) { 855 maybeAccept( functionDecl->get_functionType(), *this ); 856 acceptAll( functionDecl->get_oldDecls(), *this ); 857 functionNesting += 1; 858 maybeAccept( functionDecl->get_statements(), *this ); 859 functionNesting -= 1; 860 } 861 862 void AutogenerateRoutines::visit( CompoundStmt *compoundStmt ) { 863 visitStatement( compoundStmt ); 864 } 865 866 void AutogenerateRoutines::visit( SwitchStmt *switchStmt ) { 867 visitStatement( switchStmt ); 868 } 869 870 void AutogenerateRoutines::visit( ChooseStmt *switchStmt ) { 871 visitStatement( switchStmt ); 872 } 873 874 // void AutogenerateRoutines::visit( CaseStmt *caseStmt ) { 875 // visitStatement( caseStmt ); 876 // } 877 472 878 void ReturnChecker::checkFunctionReturns( std::list< Declaration * > & translationUnit ) { 473 879 ReturnChecker checker; … … 483 889 484 890 void ReturnChecker::visit( ReturnStmt * returnStmt ) { 485 // Previously this also checked for the existence of an expr paired with no return values on486 // the function return type. This is incorrect, since you can have an expression attached to487 // a return statement in a void-returning function in C. The expression is treated as if it488 // were cast to void.489 891 if ( returnStmt->get_expr() == NULL && returnVals.size() != 0 ) { 490 892 throw SemanticError( "Non-void function returns no values: " , returnStmt ); 893 } else if ( returnStmt->get_expr() != NULL && returnVals.size() == 0 ) { 894 throw SemanticError( "void function returns values: " , returnStmt ); 491 895 } 492 896 } … … 629 1033 return aggDecl; 630 1034 } 631 1035 632 1036 template<typename AggDecl> 633 1037 void EliminateTypedef::addImplicitTypedef( AggDecl * aggDecl ) { … … 668 1072 } 669 1073 670 void VerifyCtorDtor::verify( std::list< Declaration * > & translationUnit ) {671 VerifyCtorDtor verifier;672 acceptAll( translationUnit, verifier );673 }674 675 void VerifyCtorDtor::visit( FunctionDecl * funcDecl ) {676 FunctionType * funcType = funcDecl->get_functionType();677 std::list< DeclarationWithType * > &returnVals = funcType->get_returnVals();678 std::list< DeclarationWithType * > ¶ms = funcType->get_parameters();679 680 if ( funcDecl->get_name() == "?{}" || funcDecl->get_name() == "^?{}" ) {681 if ( params.size() == 0 ) {682 throw SemanticError( "Constructors and destructors require at least one parameter ", funcDecl );683 }684 if ( ! dynamic_cast< PointerType * >( params.front()->get_type() ) ) {685 throw SemanticError( "First parameter of a constructor or destructor must be a pointer ", funcDecl );686 }687 if ( returnVals.size() != 0 ) {688 throw SemanticError( "Constructors and destructors cannot have explicit return values ", funcDecl );689 }690 }691 692 Visitor::visit( funcDecl );693 // original idea: modify signature of ctor/dtors and insert appropriate return statements694 // to cause desired behaviour695 // new idea: add comma exprs to every ctor call to produce first parameter.696 // this requires some memoization of the first parameter, because it can be a697 // complicated expression with side effects (see: malloc). idea: add temporary variable698 // that is assigned address of constructed object in ctor argument position and699 // return the temporary. It should also be done after all implicit ctors are700 // added, so not in this pass!701 }702 703 1074 DeclarationWithType * CompoundLiteral::mutate( ObjectDecl *objectDecl ) { 704 1075 storageclass = objectDecl->get_storageClass(); -
src/SymTab/module.mk
rf80e0218 r1b5c81ed 6 6 ## file "LICENCE" distributed with Cforall. 7 7 ## 8 ## module.mk -- 8 ## module.mk -- 9 9 ## 10 10 ## Author : Richard C. Bilson … … 20 20 SymTab/FixFunction.cc \ 21 21 SymTab/ImplementationType.cc \ 22 SymTab/TypeEquality.cc \ 23 SymTab/Autogen.cc 22 SymTab/TypeEquality.cc -
src/SynTree/AddressExpr.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // AddressExpr.cc -- 7 // AddressExpr.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 23:54:44 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Apr 26 12:35:13 201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 16:52:51 2015 13 13 // Update Count : 6 14 14 // … … 32 32 33 33 void AddressExpr::print( std::ostream &os, int indent ) const { 34 os << "Address of:" << std::endl;34 os << std::string( indent, ' ' ) << "Address of:" << std::endl; 35 35 if ( arg ) { 36 os << std::string( indent+2, ' ' ); 37 arg->print( os, indent+2 ); 36 arg->print( os, indent+2 ); 38 37 } // if 39 38 } -
src/SynTree/ApplicationExpr.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ApplicationExpr.cc.cc -- 7 // ApplicationExpr.cc.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Apr 26 12:41:06 201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 07:54:17 2015 13 13 // Update Count : 4 14 14 // … … 47 47 FunctionType *function = dynamic_cast< FunctionType* >( pointer->get_base() ); 48 48 assert( function ); 49 49 50 50 for ( std::list< DeclarationWithType* >::const_iterator i = function->get_returnVals().begin(); i != function->get_returnVals().end(); ++i ) { 51 51 get_results().push_back( (*i)->get_type()->clone() ); … … 64 64 65 65 void ApplicationExpr::print( std::ostream &os, int indent ) const { 66 os << "Application of" << std::endl << std::string(indent+2, ' ');66 os << std::string( indent, ' ' ) << "Application of" << std::endl; 67 67 function->print( os, indent+2 ); 68 68 if ( ! args.empty() ) { -
src/SynTree/ArrayType.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ArrayType.cc -- 7 // ArrayType.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu May 12 14:07:16 201612 // Last Modified On : Wed Aug 12 14:19:07 2015 13 13 // Update Count : 11 14 14 // … … 51 51 if ( dimension ) { 52 52 os << " with dimension of "; 53 dimension->print( os, indent);53 dimension->print( os, 0 ); 54 54 } // if 55 55 } -
src/SynTree/CommaExpr.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // CommaExpr.cc -- 7 // CommaExpr.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Mon May 02 15:19:44 201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 08:09:58 2015 13 13 // Update Count : 1 14 14 // … … 20 20 CommaExpr::CommaExpr( Expression *arg1, Expression *arg2, Expression *_aname ) 21 21 : Expression( _aname ), arg1( arg1 ), arg2( arg2 ) { 22 // xxx - result of a comma expression is never an lvalue, so should set lvalue23 // to false on all result types. Actually doing this causes some strange things24 // to happen in later passes (particularly, Specialize, Lvalue, and Box). This needs to be looked into.25 22 cloneAll( arg2->get_results(), get_results() ); 26 // for ( Type *& type : get_results() ) {27 // type->set_isLvalue( false );28 // }29 23 } 30 24 … … 39 33 40 34 void CommaExpr::print( std::ostream &os, int indent ) const { 41 os << "Comma Expression:" << std::endl; 42 os << std::string( indent+2, ' ' ); 35 os << std::string( indent, ' ' ) << "Comma Expression:" << std::endl; 43 36 arg1->print( os, indent+2 ); 44 37 os << std::endl; 45 os << std::string( indent+2, ' ' );46 38 arg2->print( os, indent+2 ); 47 39 Expression::print( os, indent ); -
src/SynTree/CompoundStmt.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // XXX.cc -- 7 // XXX.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Mon May 02 15:19:17 201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 11:37:49 2015 13 13 // Update Count : 3 14 14 // … … 18 18 #include <algorithm> 19 19 #include <functional> 20 #include "Expression.h"21 #include "Declaration.h"22 20 23 21 using std::string; 24 22 using std::endl; 25 26 class VarExprReplacer : public Visitor {27 public:28 typedef std::map< DeclarationWithType *, DeclarationWithType * > DeclMap;29 private:30 const DeclMap & declMap;31 public:32 VarExprReplacer( const DeclMap & declMap ) : declMap( declMap ) {}33 34 // replace variable with new node from decl map35 virtual void visit( VariableExpr * varExpr ) {36 if ( declMap.count( varExpr->get_var() ) ) {37 varExpr->set_var( declMap.at( varExpr->get_var() ) );38 }39 }40 };41 42 23 43 24 CompoundStmt::CompoundStmt( std::list<Label> labels ) : Statement( labels ) { … … 46 27 CompoundStmt::CompoundStmt( const CompoundStmt &other ) : Statement( other ) { 47 28 cloneAll( other.kids, kids ); 48 49 // when cloning a compound statement, we may end up cloning declarations which50 // are referred to by VariableExprs throughout the block. Cloning a VariableExpr51 // does a shallow copy, so the VariableExpr will end up pointing to the original52 // declaration. If the original declaration is deleted, e.g. because the original53 // CompoundStmt is deleted, then we have a dangling pointer. To avoid this case,54 // find all DeclarationWithType nodes (since a VariableExpr must point to a55 // DeclarationWithType) in the original CompoundStmt and map them to the cloned56 // node in the new CompoundStmt ('this'), then replace the Declarations referred to57 // by each VariableExpr according to the constructed map. Note that only the declarations58 // in the current level are collected into the map, because child CompoundStmts will59 // recursively execute this routine. There may be more efficient ways of doing60 // this.61 VarExprReplacer::DeclMap declMap;62 std::list< Statement * >::const_iterator origit = other.kids.begin();63 for ( Statement * s : kids ) {64 assert( origit != other.kids.end() );65 if ( DeclStmt * declStmt = dynamic_cast< DeclStmt * >( s ) ) {66 DeclStmt * origDeclStmt = dynamic_cast< DeclStmt * >( *origit );67 assert( origDeclStmt );68 if ( DeclarationWithType * dwt = dynamic_cast< DeclarationWithType * > ( declStmt->get_decl() ) ) {69 DeclarationWithType * origdwt = dynamic_cast< DeclarationWithType * > ( origDeclStmt->get_decl() );70 assert( origdwt );71 declMap[ origdwt ] = dwt;72 }73 }74 }75 if ( ! declMap.empty() ) {76 VarExprReplacer replacer( declMap );77 accept( replacer );78 }79 29 } 80 30 … … 84 34 85 35 void CompoundStmt::print( std::ostream &os, int indent ) const { 86 os << "CompoundStmt" << endl ;36 os << string( indent, ' ' ) << "CompoundStmt" << endl ; 87 37 printAll( kids, os, indent + 2 ); 88 38 } -
src/SynTree/Constant.cc
rf80e0218 r1b5c81ed 30 30 Constant::~Constant() { delete type; } 31 31 32 Constant Constant::from _int( int i ) {32 Constant Constant::from( int i ) { 33 33 return Constant( new BasicType( Type::Qualifiers(), BasicType::SignedInt ), std::to_string( i ) ); 34 34 } 35 35 36 Constant Constant::from _ulong( unsigned long i ) {36 Constant Constant::from( unsigned long i ) { 37 37 return Constant( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), std::to_string( i ) ); 38 38 } 39 39 40 Constant Constant::from _double( double d ) {40 Constant Constant::from( double d ) { 41 41 return Constant( new BasicType( Type::Qualifiers(), BasicType::Double ), std::to_string( d ) ); 42 42 } -
src/SynTree/Constant.h
rf80e0218 r1b5c81ed 33 33 34 34 /// generates an integer constant of the given int 35 static Constant from _int( int i );35 static Constant from( int i ); 36 36 /// generates an integer constant of the given unsigned long int 37 static Constant from _ulong( unsigned long i );37 static Constant from( unsigned long i ); 38 38 /// generates a floating point constant of the given double 39 static Constant from _double( double d );39 static Constant from( double d ); 40 40 41 41 virtual Constant *clone() const; -
src/SynTree/Declaration.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Declaration.h -- 7 // Declaration.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri May 06 16:26:12201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:28:11 2016 13 13 // Update Count : 33 14 14 // … … 22 22 #include "Parser/LinkageSpec.h" 23 23 #include "Parser/ParseNode.h" 24 #include <string>25 24 26 25 class Declaration { … … 68 67 void set_mangleName( std::string newValue ) { mangleName = newValue; } 69 68 70 std::string get_scopedMangleName() const { return mangleName + "_" + std::to_string(scopeLevel); }71 72 int get_scopeLevel() const { return scopeLevel; }73 void set_scopeLevel( int newValue ) { scopeLevel = newValue; }74 75 69 virtual DeclarationWithType *clone() const = 0; 76 70 virtual DeclarationWithType *acceptMutator( Mutator &m ) = 0; … … 81 75 // this represents the type with all types and typedefs expanded it is generated by SymTab::Validate::Pass2 82 76 std::string mangleName; 83 // need to remember the scope level at which the variable was declared, so that84 // shadowed identifiers can be accessed85 int scopeLevel = 0;86 77 }; 87 78 … … 115 106 typedef DeclarationWithType Parent; 116 107 public: 117 FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn , const std::list< Attribute * > attributes = std::list< Attribute * >());108 FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn ); 118 109 FunctionDecl( const FunctionDecl &other ); 119 110 virtual ~FunctionDecl(); … … 128 119 std::list< std::string >& get_oldIdents() { return oldIdents; } 129 120 std::list< Declaration* >& get_oldDecls() { return oldDecls; } 130 std::list< Attribute * >& get_attributes() { return attributes; }131 121 132 122 virtual FunctionDecl *clone() const { return new FunctionDecl( *this ); } … … 140 130 std::list< std::string > oldIdents; 141 131 std::list< Declaration* > oldDecls; 142 std::list< Attribute * > attributes;143 132 }; 144 133 -
src/SynTree/DeclarationWithType.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // DeclarationWithType.cc -- 7 // DeclarationWithType.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Mon Apr 11 15:35:27 201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 08:08:07 2015 13 13 // Update Count : 3 14 14 // … … 23 23 24 24 DeclarationWithType::DeclarationWithType( const DeclarationWithType &other ) 25 : Declaration( other ), mangleName( other.mangleName ) , scopeLevel( other.scopeLevel ){25 : Declaration( other ), mangleName( other.mangleName ) { 26 26 } 27 27 -
src/SynTree/Expression.cc
rf80e0218 r1b5c81ed 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 13 16:03:39201613 // Update Count : 4 212 // Last Modified On : Fri Apr 8 17:16:23 2016 13 // Update Count : 40 14 14 // 15 15 … … 32 32 Expression::Expression( Expression *_aname ) : env( 0 ), argName( _aname ) {} 33 33 34 Expression::Expression( const Expression &other ) : env( maybeClone( other.env ) ), argName( maybeClone( other.get_argName() ) ) , extension( other.extension ){34 Expression::Expression( const Expression &other ) : env( maybeClone( other.env ) ), argName( maybeClone( other.get_argName() ) ) { 35 35 cloneAll( other.results, results ); 36 36 } … … 60 60 argName->print( os, indent+2 ); 61 61 } // if 62 63 if ( extension ) {64 os << std::string( indent, ' ' ) << "with extension:";65 } // if66 62 } 67 63 … … 76 72 77 73 void ConstantExpr::print( std::ostream &os, int indent ) const { 78 os << "constant expression " ;74 os << std::string( indent, ' ' ) << "constant expression " ; 79 75 constant.print( os ); 80 76 Expression::print( os, indent ); 77 os << std::endl; 81 78 } 82 79 83 80 VariableExpr::VariableExpr( DeclarationWithType *_var, Expression *_aname ) : Expression( _aname ), var( _var ) { 84 assert( var );85 assert( var->get_type() );86 81 add_result( var->get_type()->clone() ); 87 82 for ( std::list< Type* >::iterator i = get_results().begin(); i != get_results().end(); ++i ) { … … 98 93 99 94 void VariableExpr::print( std::ostream &os, int indent ) const { 100 os << "Variable Expression: ";95 os << std::string( indent, ' ' ) << "Variable Expression: "; 101 96 102 97 Declaration *decl = get_var(); … … 127 122 128 123 void SizeofExpr::print( std::ostream &os, int indent) const { 129 os << "Sizeof Expression on: ";124 os << std::string( indent, ' ' ) << "Sizeof Expression on: "; 130 125 131 126 if (isType) … … 300 295 301 296 void CastExpr::print( std::ostream &os, int indent ) const { 302 os << "Cast of:" << std::endl << std::string( indent+2, ' ' );297 os << std::string( indent, ' ' ) << "Cast of:" << std::endl; 303 298 arg->print(os, indent+2); 304 299 os << std::endl << std::string( indent, ' ' ) << "to:" << std::endl; … … 323 318 324 319 void UntypedMemberExpr::print( std::ostream &os, int indent ) const { 325 os << "UntypedMember Expression, with field: " << get_member();320 os << std::string( indent, ' ' ) << "Member Expression, with field: " << get_member(); 326 321 327 322 Expression *agg = get_aggregate(); 328 os << ", from aggregate: "; 329 if (agg != 0) { 330 os << std::string( indent + 2, ' ' ); 331 agg->print(os, indent + 2); 332 } 333 os << std::string( indent+2, ' ' ); 323 os << std::string( indent, ' ' ) << "from aggregate: "; 324 if (agg != 0) agg->print(os, indent + 2); 334 325 Expression::print( os, indent ); 335 326 } … … 354 345 355 346 void MemberExpr::print( std::ostream &os, int indent ) const { 356 os << "Member Expression, with field: " << std::endl;347 os << std::string( indent, ' ' ) << "Member Expression, with field: " << std::endl; 357 348 358 349 assert( member ); … … 363 354 Expression *agg = get_aggregate(); 364 355 os << std::string( indent, ' ' ) << "from aggregate: " << std::endl; 365 if (agg != 0) { 366 os << std::string( indent + 2, ' ' ); 367 agg->print(os, indent + 2); 368 } 369 os << std::string( indent+2, ' ' ); 356 if (agg != 0) agg->print(os, indent + 2); 370 357 Expression::print( os, indent ); 371 358 } … … 385 372 386 373 void UntypedExpr::print( std::ostream &os, int indent ) const { 387 os << "Applying untyped: " << std::endl; 388 os << std::string( indent+2, ' ' ); 389 function->print(os, indent + 2); 374 os << std::string( indent, ' ' ) << "Applying untyped: " << std::endl; 375 function->print(os, indent + 4); 390 376 os << std::string( indent, ' ' ) << "...to: " << std::endl; 391 printA ll(args, os, indent + 2);377 printArgs(os, indent + 4); 392 378 Expression::print( os, indent ); 393 379 } … … 395 381 void UntypedExpr::printArgs( std::ostream &os, int indent ) const { 396 382 std::list<Expression *>::const_iterator i; 397 for (i = args.begin(); i != args.end(); i++) { 398 os << std::string(indent, ' ' ); 383 for (i = args.begin(); i != args.end(); i++) 399 384 (*i)->print(os, indent); 400 }401 385 } 402 386 … … 409 393 410 394 void NameExpr::print( std::ostream &os, int indent ) const { 411 os << "Name: " << get_name() << std::endl;395 os << std::string( indent, ' ' ) << "Name: " << get_name() << std::endl; 412 396 Expression::print( os, indent ); 413 397 } … … 470 454 } 471 455 472 473 ImplicitCopyCtorExpr::ImplicitCopyCtorExpr( ApplicationExpr * callExpr ) : callExpr( callExpr ) {474 assert( callExpr );475 cloneAll( callExpr->get_results(), results );476 }477 478 ImplicitCopyCtorExpr::ImplicitCopyCtorExpr( const ImplicitCopyCtorExpr & other ) : Expression( other ), callExpr( maybeClone( other.callExpr ) ) {479 cloneAll( other.tempDecls, tempDecls );480 cloneAll( other.returnDecls, returnDecls );481 cloneAll( other.dtors, dtors );482 }483 484 ImplicitCopyCtorExpr::~ImplicitCopyCtorExpr() {485 delete callExpr;486 deleteAll( tempDecls );487 deleteAll( returnDecls );488 deleteAll( dtors );489 }490 491 void ImplicitCopyCtorExpr::print( std::ostream &os, int indent ) const {492 os << std::string( indent, ' ' ) << "Implicit Copy Constructor Expression: " << std::endl;493 assert( callExpr );494 callExpr->print( os, indent + 2 );495 os << std::endl << std::string( indent, ' ' ) << "with temporaries:" << std::endl;496 printAll(tempDecls, os, indent+2);497 os << std::endl << std::string( indent, ' ' ) << "with return temporaries:" << std::endl;498 printAll(returnDecls, os, indent+2);499 Expression::print( os, indent );500 }501 502 456 UntypedValofExpr::UntypedValofExpr( const UntypedValofExpr & other ) : Expression( other ), body ( maybeClone( other.body ) ) {} 503 457 -
src/SynTree/Expression.h
rf80e0218 r1b5c81ed 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 8 17:05:30201613 // Update Count : 2 212 // Last Modified On : Fri Apr 8 17:18:06 2016 13 // Update Count : 21 14 14 // 15 15 … … 22 22 #include "Mutator.h" 23 23 #include "Constant.h" 24 #include "Common/UniqueName.h"25 24 26 25 /// Expression is the root type for all expressions … … 38 37 Expression *get_argName() const { return argName; } 39 38 void set_argName( Expression *name ) { argName = name; } 40 bool get_extension() const { return extension; }41 void set_extension( bool exten ) { extension = exten; }42 39 43 40 virtual Expression *clone() const = 0; … … 49 46 TypeSubstitution *env; 50 47 Expression* argName; // if expression is used as an argument, it can be "designated" by this name 51 bool extension = false;52 48 }; 53 49 … … 563 559 }; 564 560 565 /// ImplicitCopyCtorExpr represents the application of a function to a set of parameters,566 /// along with a set of copy constructor calls, one for each argument.567 class ImplicitCopyCtorExpr : public Expression {568 public:569 ImplicitCopyCtorExpr( ApplicationExpr * callExpr );570 ImplicitCopyCtorExpr( const ImplicitCopyCtorExpr & other );571 virtual ~ImplicitCopyCtorExpr();572 573 ApplicationExpr *get_callExpr() const { return callExpr; }574 void set_callExpr( ApplicationExpr *newValue ) { callExpr = newValue; }575 576 std::list< ObjectDecl * > & get_tempDecls() { return tempDecls; }577 void set_tempDecls( std::list< ObjectDecl * > newValue ) { tempDecls = newValue; }578 579 std::list< ObjectDecl * > & get_returnDecls() { return returnDecls; }580 void set_returnDecls( std::list< ObjectDecl * > newValue ) { returnDecls = newValue; }581 582 std::list< Expression * > & get_dtors() { return dtors; }583 void set_dtors( std::list< Expression * > newValue ) { dtors = newValue; }584 585 virtual ImplicitCopyCtorExpr *clone() const { return new ImplicitCopyCtorExpr( *this ); }586 virtual void accept( Visitor &v ) { v.visit( this ); }587 virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }588 virtual void print( std::ostream &os, int indent = 0 ) const;589 private:590 ApplicationExpr * callExpr;591 std::list< ObjectDecl * > tempDecls;592 std::list< ObjectDecl * > returnDecls;593 std::list< Expression * > dtors;594 };595 596 561 /// ValofExpr represents a GCC 'lambda expression' 597 562 class UntypedValofExpr : public Expression { -
src/SynTree/FunctionDecl.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FunctionDecl.cc -- 7 // FunctionDecl.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri May 06 15:59:48 201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jul 13 18:11:44 2015 13 13 // Update Count : 19 14 14 // … … 19 19 #include "Statement.h" 20 20 #include "Type.h" 21 #include "Attribute.h"22 21 #include "Common/utility.h" 23 22 24 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn , std::list< Attribute * > attributes)25 : Parent( name, sc, linkage ), type( type ), statements( statements ) , attributes( attributes ){23 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn ) 24 : Parent( name, sc, linkage ), type( type ), statements( statements ) { 26 25 set_isInline( isInline ); 27 26 set_isNoreturn( isNoreturn ); … … 34 33 FunctionDecl::FunctionDecl( const FunctionDecl &other ) 35 34 : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ) { 36 cloneAll( other.attributes, attributes );37 35 } 38 36 … … 40 38 delete type; 41 39 delete statements; 42 deleteAll( attributes );43 40 } 44 41 … … 55 52 using std::endl; 56 53 using std::string; 57 54 58 55 if ( get_name() != "" ) { 59 56 os << get_name() << ": "; … … 68 65 os << "_Noreturn "; 69 66 } // if 70 71 printAll( attributes, os, indent );72 73 67 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 74 68 os << DeclarationNode::storageName[ get_storageClass() ] << ' '; … … 93 87 if ( statements ) { 94 88 os << string( indent + 2, ' ' ) << "with body " << endl; 95 os << string( indent + 4, ' ' );96 89 statements->print( os, indent + 4 ); 97 90 } // if … … 101 94 using std::endl; 102 95 using std::string; 103 96 104 97 if ( get_name() != "" ) { 105 98 os << get_name() << ": "; … … 111 104 os << "_Noreturn "; 112 105 } // if 113 114 // xxx - should printShort print attributes?115 116 106 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 117 107 os << DeclarationNode::storageName[ get_storageClass() ] << ' '; -
src/SynTree/Initializer.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Initializer.cc -- 7 // Initializer.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Fri May 13 13:23:03 201613 // Update Count : 2812 // Last Modified On : Wed Aug 12 14:05:25 2015 13 // Update Count : 14 14 14 // 15 15 16 16 #include "Initializer.h" 17 17 #include "Expression.h" 18 #include "Statement.h"19 18 #include "Common/utility.h" 20 19 21 Initializer::Initializer( bool maybeConstructed ) : maybeConstructed( maybeConstructed ) {} 22 Initializer::Initializer( const Initializer & other ) : maybeConstructed( other.maybeConstructed ) { 23 } 24 20 Initializer::Initializer() {} 25 21 26 22 Initializer::~Initializer() {} … … 35 31 void Initializer::print( std::ostream &os, int indent ) {} 36 32 37 SingleInit::SingleInit( Expression *v, const std::list< Expression *> &_designators, bool maybeConstructed ) : Initializer( maybeConstructed ), value ( v ), designators( _designators ) {33 SingleInit::SingleInit( Expression *v, std::list< Expression *> &_designators ) : value ( v ), designators( _designators ) { 38 34 } 39 35 40 SingleInit::SingleInit( const SingleInit &other ) : Initializer(other), value ( maybeClone( other.value )) {36 SingleInit::SingleInit( const SingleInit &other ) : value ( other.value ) { 41 37 cloneAll(other.designators, designators ); 42 38 } 43 39 44 SingleInit::~SingleInit() { 45 deleteAll(designators); 46 }40 SingleInit::~SingleInit() {} 41 42 SingleInit *SingleInit::clone() const { return new SingleInit( *this); } 47 43 48 44 void SingleInit::print( std::ostream &os, int indent ) { 49 45 os << std::endl << std::string(indent, ' ' ) << "Simple Initializer: " << std::endl; 50 os << std::string(indent+4, ' ' );51 46 value->print( os, indent+4 ); 52 47 53 48 if ( ! designators.empty() ) { 54 os << std::endl << std::string(indent + 2, ' ' ) << "designated by: " << std::endl;49 os << std::endl << std::string(indent + 2, ' ' ) << "designated by: " << std::endl; 55 50 for ( std::list < Expression * >::iterator i = designators.begin(); i != designators.end(); i++ ) { 56 os << std::string(indent + 4, ' ' );57 51 ( *i )->print(os, indent + 4 ); 58 52 } … … 60 54 } 61 55 62 ListInit::ListInit( const std::list<Initializer*> &_initializers, const std::list<Expression *> &_designators, bool maybeConstructed)63 : Initializer( maybeConstructed ),initializers( _initializers ), designators( _designators ) {56 ListInit::ListInit( std::list<Initializer*> &_initializers, std::list<Expression *> &_designators ) 57 : initializers( _initializers ), designators( _designators ) { 64 58 } 65 59 66 ListInit::~ListInit() { 67 deleteAll( initializers ); 68 deleteAll( designators ); 60 ListInit::~ListInit() {} 61 62 ListInit *ListInit::clone() const { 63 return new ListInit( *this ); 69 64 } 70 65 71 66 void ListInit::print( std::ostream &os, int indent ) { 72 os << std::endl << std::string(indent, ' ') << "Compound initializer: "; 67 os << std::endl << std::string(indent, ' ') << "Compound initializer: "; 73 68 if ( ! designators.empty() ) { 74 69 os << std::string(indent + 2, ' ' ) << "designated by: ["; 75 70 for ( std::list < Expression * >::iterator i = designators.begin(); 76 71 i != designators.end(); i++ ) { 77 ( *i )->print(os, indent + 4 ); 72 ( *i )->print(os, indent + 4 ); 78 73 } // for 79 74 80 75 os << std::string(indent + 2, ' ' ) << "]"; 81 76 } // if 82 77 83 for ( std::list<Initializer *>::iterator i = initializers.begin(); i != initializers.end(); i++ ) 78 for ( std::list<Initializer *>::iterator i = initializers.begin(); i != initializers.end(); i++ ) 84 79 (*i)->print( os, indent + 2 ); 85 80 } 86 87 88 ConstructorInit::ConstructorInit( Statement * ctor, Statement * dtor, Initializer * init ) : Initializer( true ), ctor( ctor ), dtor( dtor ), init( init ) {}89 ConstructorInit::ConstructorInit( const ConstructorInit &other ) : Initializer( other ), ctor( maybeClone( other.ctor ) ), dtor( maybeClone( other.dtor ) ), init( maybeClone( other.init ) ) {90 }91 92 ConstructorInit::~ConstructorInit() {93 delete ctor;94 delete dtor;95 delete init;96 }97 98 void ConstructorInit::print( std::ostream &os, int indent ) {99 os << std::endl << std::string(indent, ' ') << "Constructor initializer: " << std::endl;100 if ( ctor ) {101 os << std::string(indent+2, ' ');102 os << "initially constructed with ";103 ctor->print( os, indent+4 );104 } // if105 106 if ( dtor ) {107 os << std::string(indent+2, ' ');108 os << "destructed with ";109 dtor->print( os, indent+4 );110 }111 112 if ( init ) {113 os << std::string(indent+2, ' ');114 os << "with fallback C-style initializer: ";115 init->print( os, indent+4 );116 }117 }118 119 std::ostream & operator<<( std::ostream & out, Initializer * init ) {120 init->print( out );121 return out;122 }123 124 81 // Local Variables: // 125 82 // tab-width: 4 // -
src/SynTree/Initializer.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Initializer.h -- 7 // Initializer.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Apr 12 13:49:13 201613 // Update Count : 1 911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 09:03:48 2015 13 // Update Count : 1 14 14 // 15 15 … … 20 20 #include "Visitor.h" 21 21 #include "Mutator.h" 22 #include "Type.h"23 22 24 23 #include <cassert> … … 28 27 public: 29 28 // Initializer( std::string _name = std::string(""), int _pos = 0 ); 30 Initializer( bool maybeConstructed ); 31 Initializer( const Initializer & other ); 29 Initializer( ); 32 30 virtual ~Initializer(); 33 31 … … 45 43 } 46 44 47 bool get_maybeConstructed() { return maybeConstructed; }48 49 45 virtual Initializer *clone() const = 0; 50 46 virtual void accept( Visitor &v ) = 0; … … 54 50 // std::string name; 55 51 // int pos; 56 bool maybeConstructed;57 52 }; 58 53 … … 60 55 class SingleInit : public Initializer { 61 56 public: 62 SingleInit( Expression *value, const std::list< Expression *> &designators = std::list< Expression * >(), bool maybeConstructed = false);57 SingleInit( Expression *value, std::list< Expression *> &designators = *(new std::list<Expression *>()) ); 63 58 SingleInit( const SingleInit &other ); 64 59 virtual ~SingleInit(); 65 60 66 61 Expression *get_value() { return value; } 67 62 void set_value( Expression *newValue ) { value = newValue; } … … 70 65 std::list<Expression *> &get_designators() { return designators; } 71 66 72 virtual SingleInit *clone() const { return new SingleInit( *this); }67 virtual SingleInit *clone() const; 73 68 virtual void accept( Visitor &v ) { v.visit( this ); } 74 69 virtual Initializer *acceptMutator( Mutator &m ) { return m.mutate( this ); } … … 84 79 class ListInit : public Initializer { 85 80 public: 86 ListInit( const std::list<Initializer*> &initializers,87 const std::list<Expression *> &designators = std::list< Expression * >(), bool maybeConstructed = false);81 ListInit( std::list<Initializer*> &, 82 std::list<Expression *> &designators = *(new std::list<Expression *>()) ); 88 83 virtual ~ListInit(); 89 84 … … 96 91 std::list<Initializer*>::iterator end_initializers() { return initializers.end(); } 97 92 98 virtual ListInit *clone() const { return new ListInit( *this ); }93 virtual ListInit *clone() const; 99 94 virtual void accept( Visitor &v ) { v.visit( this ); } 100 95 virtual Initializer *acceptMutator( Mutator &m ) { return m.mutate( this ); } … … 105 100 }; 106 101 107 // ConstructorInit represents an initializer that is either a constructor expression or108 // a C-style initializer.109 class ConstructorInit : public Initializer {110 public:111 ConstructorInit( Statement * ctor, Statement * dtor, Initializer * init );112 ConstructorInit( const ConstructorInit &other );113 virtual ~ConstructorInit();114 115 void set_ctor( Statement * newValue ) { ctor = newValue; }116 Statement * get_ctor() const { return ctor; }117 void set_dtor( Statement * newValue ) { dtor = newValue; }118 Statement * get_dtor() const { return dtor; }119 void set_init( Initializer * newValue ) { init = newValue; }120 Initializer * get_init() const { return init; }121 122 ConstructorInit *clone() const { return new ConstructorInit( *this ); }123 virtual void accept( Visitor &v ) { v.visit( this ); }124 virtual Initializer *acceptMutator( Mutator &m ) { return m.mutate( this ); }125 virtual void print( std::ostream &os, int indent = 0 );126 127 private:128 Statement * ctor;129 Statement * dtor;130 // C-style initializer made up of SingleInit and ListInit nodes to use as a fallback131 // if an appropriate constructor definition is not found by the resolver132 Initializer * init;133 };134 135 std::ostream & operator<<( std::ostream & out, Initializer * init );136 137 102 #endif // INITIALIZER_H 138 103 -
src/SynTree/Mutator.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Mutator.cc -- 7 // Mutator.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Apr 27 17:07:29201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 1 18:05:16 2016 13 13 // Update Count : 16 14 14 // … … 182 182 } 183 183 184 Statement *Mutator::mutate( ImplicitCtorDtorStmt *impCtorDtorStmt ) {185 impCtorDtorStmt->set_callStmt( maybeMutate( impCtorDtorStmt->get_callStmt(), *this ) );186 return impCtorDtorStmt;187 }188 189 184 Expression *Mutator::mutate( ApplicationExpr *applicationExpr ) { 190 185 mutateAll( applicationExpr->get_results(), *this ); … … 340 335 asmExpr->set_operand( maybeMutate( asmExpr->get_operand(), *this ) ); 341 336 return asmExpr; 342 }343 344 Expression* Mutator::mutate( ImplicitCopyCtorExpr *impCpCtorExpr ) {345 impCpCtorExpr->set_callExpr( maybeMutate( impCpCtorExpr->get_callExpr(), *this ) );346 mutateAll( impCpCtorExpr->get_tempDecls(), *this );347 mutateAll( impCpCtorExpr->get_returnDecls(), *this );348 return impCpCtorExpr;349 337 } 350 338 … … 462 450 } 463 451 464 Initializer *Mutator::mutate( ConstructorInit *ctorInit ) {465 ctorInit->set_ctor( maybeMutate( ctorInit->get_ctor(), *this ) );466 ctorInit->set_init( maybeMutate( ctorInit->get_init(), *this ) );467 return ctorInit;468 }469 470 452 Subrange *Mutator::mutate( Subrange *subrange ) { 471 453 return subrange; -
src/SynTree/Mutator.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Mutator.h -- 7 // Mutator.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Thu Apr 14 15:32:00201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 1 17:26:56 2016 13 13 // Update Count : 10 14 14 // … … 52 52 virtual NullStmt* mutate( NullStmt *nullStmt ); 53 53 virtual Statement* mutate( DeclStmt *declStmt ); 54 virtual Statement* mutate( ImplicitCtorDtorStmt *impCtorDtorStmt );55 54 56 55 virtual Expression* mutate( ApplicationExpr *applicationExpr ); … … 63 62 virtual Expression* mutate( MemberExpr *memberExpr ); 64 63 virtual Expression* mutate( VariableExpr *variableExpr ); 65 virtual Expression* mutate( ConstantExpr *constantExpr ); 64 virtual Expression* mutate( ConstantExpr *constantExpr ); 66 65 virtual Expression* mutate( SizeofExpr *sizeofExpr ); 67 66 virtual Expression* mutate( AlignofExpr *alignofExpr ); … … 77 76 virtual Expression* mutate( TypeExpr *typeExpr ); 78 77 virtual Expression* mutate( AsmExpr *asmExpr ); 79 virtual Expression* mutate( ImplicitCopyCtorExpr *impCpCtorExpr );80 78 virtual Expression* mutate( UntypedValofExpr *valofExpr ); 81 79 virtual Expression* mutate( CompoundLiteralExpr *compLitExpr ); … … 98 96 virtual Initializer* mutate( SingleInit *singleInit ); 99 97 virtual Initializer* mutate( ListInit *listInit ); 100 virtual Initializer* mutate( ConstructorInit *ctorInit );101 98 102 99 virtual Subrange *mutate( Subrange *subrange ); -
src/SynTree/ObjectDecl.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ObjectDecl.cc -- 7 // ObjectDecl.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Fri May 13 13:23:32 201613 // Update Count : 3012 // Last Modified On : Tue Sep 29 14:13:01 2015 13 // Update Count : 18 14 14 // 15 15 … … 19 19 #include "Expression.h" 20 20 #include "Common/utility.h" 21 #include "Statement.h"22 21 23 22 ObjectDecl::ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init, bool isInline, bool isNoreturn ) … … 59 58 os << " with initializer "; 60 59 init->print( os, indent ); 61 os << std::endl << std::string(indent, ' ');62 os << "maybeConstructed? " << init->get_maybeConstructed();63 60 } // if 64 61 65 62 if ( bitfieldWidth ) { 66 os << std::string(indent, ' ');67 63 os << " with bitfield width "; 68 64 bitfieldWidth->print( os ); … … 73 69 #if 0 74 70 if ( get_mangleName() != "") { 75 os << get_mangleName() << ": "; 76 } else 71 os << get_mangleName() << ": "; 72 } else 77 73 #endif 78 74 if ( get_name() != "" ) { -
src/SynTree/Statement.cc
rf80e0218 r1b5c81ed 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu May 12 13:33:18 201612 // Last Modified On : Wed Dec 09 14:09:34 2015 13 13 // Update Count : 54 14 14 // … … 43 43 44 44 void ExprStmt::print( std::ostream &os, int indent ) const { 45 os << "Expression Statement:" << endl << std::string( indent + 2, ' ' );45 os << string( indent, ' ' ) << "Expression Statement:" << endl; 46 46 expr->print( os, indent + 2 ); 47 47 } … … 87 87 Statement( labels ), originalTarget( _target ), target( _target ), computedTarget( NULL ), type( _type ) { 88 88 //actually this is a syntactic error signaled by the parser 89 if ( type == BranchStmt::Goto && target. empty())89 if ( type == BranchStmt::Goto && target.size() == 0 ) 90 90 throw SemanticError("goto without target"); 91 91 } … … 110 110 111 111 void ReturnStmt::print( std::ostream &os, int indent ) const { 112 os << string ( isThrow? "Throw":"Return" ) << " Statement, returning: "; 113 if ( expr != 0 ) { 114 os << endl << string( indent+2, ' ' ); 115 expr->print( os, indent + 2 ); 116 } 112 os << std::string( indent, ' ' ) << string ( isThrow? "Throw":"Return" ) << " Statement, returning: "; 113 if ( expr != 0 ) expr->print( os ); 117 114 os << endl; 118 115 } … … 127 124 128 125 void IfStmt::print( std::ostream &os, int indent ) const { 129 os << "If on condition: " << endl ; 130 os << string( indent+4, ' ' ); 126 os << string( indent, ' ' ) << "If on condition: " << endl ; 131 127 condition->print( os, indent + 4 ); 132 128 133 os << string( indent+2, ' ' ) << "... then: " << endl; 134 135 os << string( indent+4, ' ' ); 129 os << string( indent, ' ' ) << ".... and branches: " << endl; 130 136 131 thenPart->print( os, indent + 4 ); 137 132 138 133 if ( elsePart != 0 ) { 139 os << string( indent+2, ' ' ) << "... else: " << endl;140 os << string( indent+4, ' ' );141 134 elsePart->print( os, indent + 4 ); 142 135 } // if … … 160 153 161 154 void SwitchStmt::print( std::ostream &os, int indent ) const { 162 os << "Switch on condition: ";155 os << string( indent, ' ' ) << "Switch on condition: "; 163 156 condition->print( os ); 164 157 os << endl; … … 225 218 226 219 void ChooseStmt::print( std::ostream &os, int indent ) const { 227 os << "Choose on condition: ";220 os << string( indent, ' ' ) << "Choose on condition: "; 228 221 condition->print( os ); 229 222 os << endl; … … 254 247 255 248 void WhileStmt::print( std::ostream &os, int indent ) const { 256 os << "While on condition: " << endl ;249 os << string( indent, ' ' ) << "While on condition: " << endl ; 257 250 condition->print( os, indent + 4 ); 258 251 … … 280 273 281 274 void ForStmt::print( std::ostream &os, int indent ) const { 282 os << "Labels: {";275 os << string( indent, ' ' ) << "Labels: {"; 283 276 for ( std::list<Label>::const_iterator it = get_labels().begin(); it != get_labels().end(); ++it) { 284 277 os << *it << ","; … … 290 283 os << string( indent + 2, ' ' ) << "initialization: \n"; 291 284 for ( std::list<Statement *>::const_iterator it = initialization.begin(); it != initialization.end(); ++it ) { 292 os << string( indent + 4, ' ' );293 285 (*it)->print( os, indent + 4 ); 294 286 } 295 287 296 288 os << "\n" << string( indent + 2, ' ' ) << "condition: \n"; 297 if ( condition != 0 ) { 298 os << string( indent + 4, ' ' ); 289 if ( condition != 0 ) 299 290 condition->print( os, indent + 4 ); 300 }301 291 302 292 os << "\n" << string( indent + 2, ' ' ) << "increment: \n"; 303 if ( increment != 0 ) { 304 os << string( indent + 4, ' ' ); 293 if ( increment != 0 ) 305 294 increment->print( os, indent + 4 ); 306 }307 295 308 296 os << "\n" << string( indent + 2, ' ' ) << "statement block: \n"; 309 if ( body != 0 ) { 310 os << string( indent + 4, ' ' ); 297 if ( body != 0 ) 311 298 body->print( os, indent + 4 ); 312 }313 299 314 300 os << endl; … … 328 314 329 315 void TryStmt::print( std::ostream &os, int indent ) const { 330 os << "Try Statement" << endl;316 os << string( indent, ' ' ) << "Try Statement" << endl; 331 317 os << string( indent + 2, ' ' ) << "with block: " << endl; 332 318 block->print( os, indent + 4 ); … … 358 344 359 345 void CatchStmt::print( std::ostream &os, int indent ) const { 360 os << "Catch Statement" << endl;346 os << string( indent, ' ' ) << "Catch Statement" << endl; 361 347 362 348 os << string( indent, ' ' ) << "... catching" << endl; … … 383 369 384 370 void FinallyStmt::print( std::ostream &os, int indent ) const { 385 os << "Finally Statement" << endl;371 os << string( indent, ' ' ) << "Finally Statement" << endl; 386 372 os << string( indent + 2, ' ' ) << "with block: " << endl; 387 373 block->print( os, indent + 4 ); … … 392 378 393 379 void NullStmt::print( std::ostream &os, int indent ) const { 394 os << "Null Statement" << endl ; 395 } 396 397 ImplicitCtorDtorStmt::ImplicitCtorDtorStmt( Statement * callStmt ) : Statement( std::list<Label>() ), callStmt( callStmt ) { 398 assert( callStmt ); 399 } 400 401 ImplicitCtorDtorStmt::ImplicitCtorDtorStmt( const ImplicitCtorDtorStmt & other ) : Statement( other ), callStmt( maybeClone( other.callStmt ) ) { 402 } 403 404 ImplicitCtorDtorStmt::~ImplicitCtorDtorStmt() { 405 delete callStmt; 406 } 407 408 void ImplicitCtorDtorStmt::print( std::ostream &os, int indent ) const { 409 os << "Implicit Ctor Dtor Statement" << endl; 410 os << string( indent + 2, ' ' ) << "with Ctor/Dtor: "; 411 callStmt->print( os, indent + 2); 412 os << endl; 380 os << string( indent, ' ' ) << "Null Statement" << endl ; 413 381 } 414 382 -
src/SynTree/Statement.h
rf80e0218 r1b5c81ed 21 21 #include "Mutator.h" 22 22 #include "Common/SemanticError.h" 23 #include "Type.h"24 #include "Label.h"25 23 26 24 class Statement { … … 396 394 virtual ~DeclStmt(); 397 395 398 Declaration *get_decl() const{ return decl; }396 Declaration *get_decl() { return decl; } 399 397 void set_decl( Declaration *newValue ) { decl = newValue; } 400 398 … … 406 404 Declaration *decl; 407 405 }; 408 409 410 /// represents an implicit application of a constructor or destructor. Qualifiers are replaced411 /// immediately before and after the call so that qualified objects can be constructed412 /// with the same functions as unqualified objects.413 class ImplicitCtorDtorStmt : public Statement {414 public:415 ImplicitCtorDtorStmt( Statement * callStmt );416 ImplicitCtorDtorStmt( const ImplicitCtorDtorStmt & other );417 virtual ~ImplicitCtorDtorStmt();418 419 Statement *get_callStmt() const { return callStmt; }420 void set_callStmt( Statement * newValue ) { callStmt = newValue; }421 422 virtual ImplicitCtorDtorStmt *clone() const { return new ImplicitCtorDtorStmt( *this ); }423 virtual void accept( Visitor &v ) { v.visit( this ); }424 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }425 virtual void print( std::ostream &os, int indent = 0 ) const;426 427 private:428 // Non-owned pointer to the constructor/destructor statement429 Statement * callStmt;430 };431 432 406 433 407 std::ostream & operator<<( std::ostream & out, Statement * statement ); -
src/SynTree/SynTree.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // SynTree.h -- 7 // SynTree.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Thu Apr 14 15:31:36201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 1 16:47:44 2016 13 13 // Update Count : 5 14 14 // … … 56 56 class DeclStmt; 57 57 class NullStmt; 58 class ImplicitCtorDtorStmt;59 58 60 59 class Expression; … … 82 81 class TypeExpr; 83 82 class AsmExpr; 84 class ImplicitCopyCtorExpr;85 83 class UntypedValofExpr; 86 84 class CompoundLiteralExpr; … … 106 104 class SingleInit; 107 105 class ListInit; 108 class ConstructorInit;109 106 110 107 class Subrange; … … 113 110 class Constant; 114 111 115 // typedef std::string Label; 116 class Label; 112 typedef std::string Label; 117 113 typedef unsigned int UniqueId; 118 114 119 115 class TypeSubstitution; 120 121 // gcc attribute122 class Attribute;123 116 124 117 #endif // SYNTREE_H -
src/SynTree/Type.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Type.cc -- 7 // Type.cc -- 8 8 // 9 9 // Author : Richard C. Bilson … … 54 54 } 55 55 56 void Type::Qualifiers::print( std::ostream &os, int indent ) const {57 if ( isConst ) {58 os << "const ";59 } // if60 if ( isVolatile ) {61 os << "volatile ";62 } // if63 if ( isRestrict ) {64 os << "restrict ";65 } // if66 if ( isLvalue ) {67 os << "lvalue ";68 } // if69 if ( isAtomic ) {70 os << "_Atomic ";71 } // if72 if ( isAttribute ) {73 os << "__attribute(( )) ";74 } // if75 }76 77 56 void Type::print( std::ostream &os, int indent ) const { 78 57 if ( ! forall.empty() ) { … … 81 60 os << std::string( indent+2, ' ' ); 82 61 } // if 83 tq.print( os, indent ); 62 if ( tq.isConst ) { 63 os << "const "; 64 } // if 65 if ( tq.isVolatile ) { 66 os << "volatile "; 67 } // if 68 if ( tq.isRestrict ) { 69 os << "restrict "; 70 } // if 71 if ( tq.isLvalue ) { 72 os << "lvalue "; 73 } // if 74 if ( tq.isAtomic ) { 75 os << "_Atomic "; 76 } // if 77 if ( tq.isAttribute ) { 78 os << "__attribute(( )) "; 79 } // if 84 80 } 85 81 -
src/SynTree/Type.h
rf80e0218 r1b5c81ed 36 36 bool operator<( const Qualifiers &other ); 37 37 bool operator>( const Qualifiers &other ); 38 void print( std::ostream &os, int indent = 0 ) const;39 38 40 39 bool isConst; -
src/SynTree/TypeSubstitution.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // TypeSubstitution.cc -- 7 // TypeSubstitution.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Apr 26 11:15:29201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:29:15 2016 13 13 // Update Count : 3 14 14 // … … 72 72 Type *TypeSubstitution::lookup( std::string formalType ) const { 73 73 TypeEnvType::const_iterator i = typeEnv.find( formalType ); 74 75 // break on not in substitution set76 if ( i == typeEnv.end() ) return 0;77 78 // attempt to transitively follow TypeInstType links.79 while ( TypeInstType *actualType = dynamic_cast< TypeInstType* >( i->second ) ) {80 const std::string& typeName = actualType->get_name();81 82 // break cycles in the transitive follow83 if ( formalType == typeName ) break;84 85 // Look for the type this maps to, returning previous mapping if none-such86 i = typeEnv.find( typeName );87 if ( i == typeEnv.end() ) return actualType;88 }89 90 // return type from substitution set91 return i->second;92 93 #if 094 74 if ( i == typeEnv.end() ) { 95 75 return 0; … … 97 77 return i->second; 98 78 } // if 99 #endif100 79 } 101 80 … … 117 96 BoundVarsType::const_iterator bound = boundVars.find( inst->get_name() ); 118 97 if ( bound != boundVars.end() ) return inst; 119 98 120 99 TypeEnvType::const_iterator i = typeEnv.find( inst->get_name() ); 121 100 if ( i == typeEnv.end() ) { … … 238 217 } 239 218 240 std::ostream & operator<<( std::ostream & out, const TypeSubstitution & sub ) {241 sub.print( out );242 return out;243 }244 245 246 219 // Local Variables: // 247 220 // tab-width: 4 // -
src/SynTree/TypeSubstitution.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // TypeSubstitution.h -- 7 // TypeSubstitution.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri Apr 29 15:00:20201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:33:19 2016 13 13 // Update Count : 2 14 14 // … … 33 33 TypeSubstitution( const TypeSubstitution &other ); 34 34 virtual ~TypeSubstitution(); 35 35 36 36 TypeSubstitution &operator=( const TypeSubstitution &other ); 37 37 38 38 template< typename SynTreeClass > int apply( SynTreeClass *&input ); 39 39 template< typename SynTreeClass > int applyFree( SynTreeClass *&input ); 40 40 41 41 void add( std::string formalType, Type *actualType ); 42 42 void add( const TypeSubstitution &other ); … … 44 44 Type *lookup( std::string formalType ) const; 45 45 bool empty() const; 46 46 47 47 template< typename FormalIterator, typename ActualIterator > 48 48 void add( FormalIterator formalBegin, FormalIterator formalEnd, ActualIterator actualBegin ); 49 50 /// this function is unused... 49 51 50 template< typename TypeInstListIterator > 52 51 void extract( TypeInstListIterator begin, TypeInstListIterator end, TypeSubstitution &result ); 53 52 54 53 void normalize(); 55 54 … … 64 63 /// Records type variable bindings from forall-statements and instantiations of generic types 65 64 template< typename TypeClass > Type *handleAggregateType( TypeClass *type ); 66 65 67 66 virtual Type* mutate(VoidType *basicType); 68 67 virtual Type* mutate(BasicType *basicType); … … 76 75 virtual Type* mutate(TupleType *tupleType); 77 76 virtual Type* mutate(VarArgsType *varArgsType); 78 77 79 78 // TODO: worry about traversing into a forall-qualified function type or type decl with assertions 80 79 81 80 void initialize( const TypeSubstitution &src, TypeSubstitution &dest ); 82 81 … … 137 136 return subCount; 138 137 } 139 138 140 139 template< typename SynTreeClass > 141 140 int TypeSubstitution::applyFree( SynTreeClass *&input ) { … … 150 149 return subCount; 151 150 } 152 151 153 152 template< typename TypeInstListIterator > 154 153 void TypeSubstitution::extract( TypeInstListIterator begin, TypeInstListIterator end, TypeSubstitution &result ) { 155 // xxx - this function doesn't extract varEnv - is this intentional?156 154 while ( begin != end ) { 157 155 TypeEnvType::iterator cur = typeEnv.find( (*begin++)->get_name() ); … … 175 173 } 176 174 177 std::ostream & operator<<( std::ostream & out, const TypeSubstitution & sub );178 179 175 #endif // TYPESUBSTITUTION_H 180 176 -
src/SynTree/Visitor.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Visitor.cc -- 7 // Visitor.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Apr 27 17:07:40201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 1 18:05:13 2016 13 13 // Update Count : 18 14 14 // … … 39 39 } 40 40 41 void Visitor:: handleAggregateDecl( AggregateDecl *aggregateDecl ) {41 void Visitor::visit( AggregateDecl *aggregateDecl ) { 42 42 acceptAll( aggregateDecl->get_parameters(), *this ); 43 43 acceptAll( aggregateDecl->get_members(), *this ); … … 45 45 46 46 void Visitor::visit( StructDecl *aggregateDecl ) { 47 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) );47 visit( static_cast< AggregateDecl* >( aggregateDecl ) ); 48 48 } 49 49 50 50 void Visitor::visit( UnionDecl *aggregateDecl ) { 51 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) );51 visit( static_cast< AggregateDecl* >( aggregateDecl ) ); 52 52 } 53 53 54 54 void Visitor::visit( EnumDecl *aggregateDecl ) { 55 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) );55 visit( static_cast< AggregateDecl* >( aggregateDecl ) ); 56 56 } 57 57 58 58 void Visitor::visit( TraitDecl *aggregateDecl ) { 59 handleAggregateDecl( static_cast< AggregateDecl* >( aggregateDecl ) );60 } 61 62 void Visitor:: handleNamedTypeDecl( NamedTypeDecl *typeDecl ) {59 visit( static_cast< AggregateDecl* >( aggregateDecl ) ); 60 } 61 62 void Visitor::visit( NamedTypeDecl *typeDecl ) { 63 63 acceptAll( typeDecl->get_parameters(), *this ); 64 64 acceptAll( typeDecl->get_assertions(), *this ); … … 67 67 68 68 void Visitor::visit( TypeDecl *typeDecl ) { 69 handleNamedTypeDecl( static_cast< NamedTypeDecl* >( typeDecl ) );69 visit( static_cast< NamedTypeDecl* >( typeDecl ) ); 70 70 } 71 71 72 72 void Visitor::visit( TypedefDecl *typeDecl ) { 73 handleNamedTypeDecl( static_cast< NamedTypeDecl* >( typeDecl ) );73 visit( static_cast< NamedTypeDecl* >( typeDecl ) ); 74 74 } 75 75 … … 150 150 void Visitor::visit( DeclStmt *declStmt ) { 151 151 maybeAccept( declStmt->get_decl(), *this ); 152 }153 154 void Visitor::visit( ImplicitCtorDtorStmt *impCtorDtorStmt ) {155 maybeAccept( impCtorDtorStmt->get_callStmt(), *this );156 152 } 157 153 … … 288 284 } 289 285 290 void Visitor::visit( ImplicitCopyCtorExpr *impCpCtorExpr ) {291 maybeAccept( impCpCtorExpr->get_callExpr(), *this );292 acceptAll( impCpCtorExpr->get_tempDecls(), *this );293 acceptAll( impCpCtorExpr->get_returnDecls(), *this );294 }295 296 286 void Visitor::visit( UntypedValofExpr *valofExpr ) { 297 287 acceptAll( valofExpr->get_results(), *this ); … … 330 320 } 331 321 332 void Visitor:: handleReferenceToType( ReferenceToType *aggregateUseType ) {322 void Visitor::visit( ReferenceToType *aggregateUseType ) { 333 323 acceptAll( aggregateUseType->get_forall(), *this ); 334 324 acceptAll( aggregateUseType->get_parameters(), *this ); … … 336 326 337 327 void Visitor::visit( StructInstType *aggregateUseType ) { 338 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) );328 visit( static_cast< ReferenceToType * >( aggregateUseType ) ); 339 329 } 340 330 341 331 void Visitor::visit( UnionInstType *aggregateUseType ) { 342 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) );332 visit( static_cast< ReferenceToType * >( aggregateUseType ) ); 343 333 } 344 334 345 335 void Visitor::visit( EnumInstType *aggregateUseType ) { 346 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) );336 visit( static_cast< ReferenceToType * >( aggregateUseType ) ); 347 337 } 348 338 349 339 void Visitor::visit( TraitInstType *aggregateUseType ) { 350 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) );340 visit( static_cast< ReferenceToType * >( aggregateUseType ) ); 351 341 acceptAll( aggregateUseType->get_members(), *this ); 352 342 } 353 343 354 344 void Visitor::visit( TypeInstType *aggregateUseType ) { 355 handleReferenceToType( static_cast< ReferenceToType * >( aggregateUseType ) );345 visit( static_cast< ReferenceToType * >( aggregateUseType ) ); 356 346 } 357 347 … … 389 379 } 390 380 391 void Visitor::visit( ConstructorInit *ctorInit ) {392 maybeAccept( ctorInit->get_ctor(), *this );393 maybeAccept( ctorInit->get_init(), *this );394 }395 396 381 void Visitor::visit( Subrange *subrange ) {} 397 382 -
src/SynTree/Visitor.h
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Visitor.h -- 7 // Visitor.h -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Thu Apr 14 15:30:58201611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 1 17:26:55 2016 13 13 // Update Count : 7 14 14 // … … 52 52 virtual void visit( NullStmt *nullStmt ); 53 53 virtual void visit( DeclStmt *declStmt ); 54 virtual void visit( ImplicitCtorDtorStmt *impCtorDtorStmt );55 54 56 55 virtual void visit( ApplicationExpr *applicationExpr ); … … 63 62 virtual void visit( MemberExpr *memberExpr ); 64 63 virtual void visit( VariableExpr *variableExpr ); 65 virtual void visit( ConstantExpr *constantExpr ); 64 virtual void visit( ConstantExpr *constantExpr ); 66 65 virtual void visit( SizeofExpr *sizeofExpr ); 67 66 virtual void visit( AlignofExpr *alignofExpr ); … … 77 76 virtual void visit( TypeExpr *typeExpr ); 78 77 virtual void visit( AsmExpr *asmExpr ); 79 virtual void visit( ImplicitCopyCtorExpr *impCpCtorExpr );80 78 virtual void visit( UntypedValofExpr *valofExpr ); 81 79 virtual void visit( CompoundLiteralExpr *compLitExpr ); … … 98 96 virtual void visit( SingleInit *singleInit ); 99 97 virtual void visit( ListInit *listInit ); 100 virtual void visit( ConstructorInit *ctorInit );101 98 102 99 virtual void visit( Subrange *subrange ); … … 104 101 virtual void visit( Constant *constant ); 105 102 private: 106 virtual void handleAggregateDecl( AggregateDecl *aggregateDecl );107 virtual void handleNamedTypeDecl( NamedTypeDecl *typeDecl );108 virtual void handleReferenceToType( ReferenceToType *aggregateUseType );103 virtual void visit( AggregateDecl *aggregateDecl ); 104 virtual void visit( NamedTypeDecl *typeDecl ); 105 virtual void visit( ReferenceToType *aggregateUseType ); 109 106 }; 110 107 -
src/SynTree/module.mk
rf80e0218 r1b5c81ed 6 6 ## file "LICENCE" distributed with Cforall. 7 7 ## 8 ## module.mk -- 8 ## module.mk -- 9 9 ## 10 10 ## Author : Richard C. Bilson … … 46 46 SynTree/Visitor.cc \ 47 47 SynTree/Mutator.cc \ 48 SynTree/AddStmtVisitor.cc \ 49 SynTree/TypeSubstitution.cc \ 50 SynTree/Attribute.cc 48 SynTree/TypeSubstitution.cc 51 49 -
src/driver/Makefile.in
rf80e0218 r1b5c81ed 62 62 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 63 63 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) 64 AM_V_CXX = $(am__v_CXX_@AM_V@)65 am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)66 am__v_CXX_0 = @echo " CXX " $@;67 AM_V_at = $(am__v_at_@AM_V@)68 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)69 am__v_at_0 = @70 64 CXXLD = $(CXX) 71 65 CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ 72 66 -o $@ 73 AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)74 am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)75 am__v_CXXLD_0 = @echo " CXXLD " $@;76 AM_V_GEN = $(am__v_GEN_@AM_V@)77 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)78 am__v_GEN_0 = @echo " GEN " $@;79 67 SOURCES = $(cc1_SOURCES) $(cfa_SOURCES) 80 68 DIST_SOURCES = $(cc1_SOURCES) $(cfa_SOURCES) … … 85 73 ALLOCA = @ALLOCA@ 86 74 AMTAR = @AMTAR@ 87 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@88 75 AUTOCONF = @AUTOCONF@ 89 76 AUTOHEADER = @AUTOHEADER@ … … 93 80 CC = @CC@ 94 81 CCDEPMODE = @CCDEPMODE@ 95 CFA_BACKEND_CC = @CFA_BACKEND_CC@96 82 CFA_BINDIR = @CFA_BINDIR@ 97 83 CFA_INCDIR = @CFA_INCDIR@ … … 112 98 EGREP = @EGREP@ 113 99 EXEEXT = @EXEEXT@ 100 GCC_PATH = @GCC_PATH@ 114 101 GREP = @GREP@ 115 102 INSTALL = @INSTALL@ … … 306 293 cc1$(EXEEXT): $(cc1_OBJECTS) $(cc1_DEPENDENCIES) $(EXTRA_cc1_DEPENDENCIES) 307 294 @rm -f cc1$(EXEEXT) 308 $( AM_V_CXXLD)$(CXXLINK) $(cc1_OBJECTS) $(cc1_LDADD) $(LIBS)295 $(CXXLINK) $(cc1_OBJECTS) $(cc1_LDADD) $(LIBS) 309 296 cfa$(EXEEXT): $(cfa_OBJECTS) $(cfa_DEPENDENCIES) $(EXTRA_cfa_DEPENDENCIES) 310 297 @rm -f cfa$(EXEEXT) 311 $( AM_V_CXXLD)$(CXXLINK) $(cfa_OBJECTS) $(cfa_LDADD) $(LIBS)298 $(CXXLINK) $(cfa_OBJECTS) $(cfa_LDADD) $(LIBS) 312 299 313 300 mostlyclean-compile: … … 321 308 322 309 .cc.o: 323 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<324 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po325 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@310 @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 311 @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 312 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 326 313 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 327 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<314 @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< 328 315 329 316 .cc.obj: 330 @am__fastdepCXX_TRUE@ $( AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`331 @am__fastdepCXX_TRUE@ $( AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po332 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@317 @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 318 @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 319 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 333 320 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 334 @am__fastdepCXX_FALSE@ $( AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`321 @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 335 322 336 323 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -
src/driver/cc1.cc
rf80e0218 r1b5c81ed 10 10 // Created On : Fri Aug 26 14:23:51 2005 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 10 09:27:37201613 // Update Count : 8012 // Last Modified On : Mon Jan 25 16:05:15 2016 13 // Update Count : 56 14 14 // 15 15 … … 30 30 31 31 32 string compiler_name( CFA_BACKEND_CC );// path/name of C compiler32 string compiler_name( GCC_PATH ); // path/name of C compiler 33 33 34 34 string D__GCC_BPREFIX__( "-D__GCC_BPREFIX__=" ); … … 108 108 const char *args[argc + 100]; // leave space for 100 additional cpp command line values 109 109 int nargs = 1; // number of arguments in args list; 0 => command name 110 const char * cargs[20]; // leave space for 20 additional cfa-cpp command line values111 int n cargs = 1; // 0 => command name110 const char *uargs[20]; // leave space for 20 additional cfa-cpp command line values 111 int nuargs = 1; // 0 => command name 112 112 113 113 signal( SIGINT, sigTermHandler ); 114 114 signal( SIGTERM, sigTermHandler ); 115 116 #ifdef __DEBUG_H__117 cerr << "Stage1" << endl;118 #endif // __DEBUG_H__119 115 120 116 // process all the arguments … … 151 147 i += 1; // and the argument 152 148 cpp_flag = true; 153 } else if ( arg == "-D__CFA_ PREPROCESS__" ) {149 } else if ( arg == "-D__CFA__" ) { 154 150 CFA_flag = true; 155 } else if ( arg == "-D" && string( argv[i + 1] ) == "__CFA_ PREPROCESS__" ) {151 } else if ( arg == "-D" && string( argv[i + 1] ) == "__CFA__" ) { 156 152 i += 1; // and the argument 157 153 CFA_flag = true; 158 154 } else if ( prefix( arg, D__CFA_FLAGPREFIX__ ) ) { 159 cargs[ncargs] = ( *new string( arg.substr( D__CFA_FLAGPREFIX__.size() ) ) ).c_str();160 n cargs += 1;155 uargs[nuargs] = ( *new string( arg.substr( D__CFA_FLAGPREFIX__.size() ) ) ).c_str(); 156 nuargs += 1; 161 157 } else if ( arg == "-D" && prefix( argv[i + 1], D__CFA_FLAGPREFIX__.substr(2) ) ) { 162 cargs[ncargs] = ( *new string( string( argv[i + 1] ).substr( D__CFA_FLAGPREFIX__.size() - 2 ) ) ).c_str();163 n cargs += 1;158 uargs[nuargs] = ( *new string( string( argv[i + 1] ).substr( D__CFA_FLAGPREFIX__.size() - 2 ) ) ).c_str(); 159 nuargs += 1; 164 160 i += 1; // and the argument 165 161 } else if ( prefix( arg, D__GCC_BPREFIX__ ) ) { … … 321 317 322 318 if ( fork() == 0 ) { // child runs CFA 323 cargs[0] = ( *new string( bprefix + "/cfa-cpp" ) ).c_str(); 324 325 // Source file-name used to generate routine names containing global initializations for TU. 326 cargs[ncargs] = ( *new string( "-F" ) ).c_str(); 327 ncargs += 1; 328 cargs[ncargs] = ( *new string( string( cpp_in ) ) ).c_str(); 329 ncargs += 1; 330 331 cargs[ncargs] = tmpname; 332 ncargs += 1; 319 uargs[0] = ( *new string( bprefix + "/cfa-cpp" ) ).c_str(); 320 321 uargs[nuargs] = tmpname; 322 nuargs += 1; 333 323 if ( o_name != NULL ) { 334 cargs[ncargs] = o_name;335 n cargs += 1;324 uargs[nuargs] = o_name; 325 nuargs += 1; 336 326 } else if ( ! CFA_flag ) { // run cfa-cpp ? 337 cargs[ncargs] = cpp_out;338 n cargs += 1;327 uargs[nuargs] = cpp_out; 328 nuargs += 1; 339 329 } // if 340 cargs[ncargs] = NULL; // terminate argument list341 342 #ifdef __DEBUG_H__ 343 cerr << "cfa-cpp n cargs: " << o_name << " " << CFA_flag << " " << ncargs << endl;344 for ( i = 0; cargs[i] != NULL; i += 1 ) {345 cerr << cargs[i] << " ";330 uargs[nuargs] = NULL; // terminate argument list 331 332 #ifdef __DEBUG_H__ 333 cerr << "cfa-cpp nuargs: " << o_name << " " << CFA_flag << " " << nuargs << endl; 334 for ( i = 0; uargs[i] != NULL; i += 1 ) { 335 cerr << uargs[i] << " "; 346 336 } // for 347 337 cerr << endl; 348 338 #endif // __DEBUG_H__ 349 339 350 execvp( cargs[0], (char * const *)cargs ); // should not return340 execvp( uargs[0], (char * const *)uargs ); // should not return 351 341 perror( "CFA Translator error: cpp level, execvp" ); 352 342 exit( EXIT_FAILURE ); … … 380 370 const char *args[argc + 100]; // leave space for 100 additional cfa command line values 381 371 int nargs = 1; // number of arguments in args list; 0 => command name 382 383 #ifdef __DEBUG_H__384 cerr << "Stage2" << endl;385 #endif // __DEBUG_H__386 372 387 373 // process all the arguments … … 481 467 482 468 if ( arg == "-E" ) { 469 #ifdef __DEBUG_H__ 470 cerr << "Stage1" << endl; 471 #endif // __DEBUG_H__ 483 472 Stage1( argc, argv ); 484 473 } else if ( arg == "-fpreprocessed" ) { 474 #ifdef __DEBUG_H__ 475 cerr << "Stage2" << endl; 476 #endif // __DEBUG_H__ 485 477 Stage2( argc, argv ); 486 478 } else { -
src/driver/cfa.cc
rf80e0218 r1b5c81ed 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 10 09:26:19201613 // Update Count : 13 812 // Last Modified On : Wed Apr 6 14:04:22 2016 13 // Update Count : 132 14 14 // 15 15 … … 75 75 string langstd; // language standard 76 76 77 string compiler_path( CFA_BACKEND_CC );// path/name of C compiler77 string compiler_path( GCC_PATH ); // path/name of C compiler 78 78 string compiler_name; // name of C compiler 79 79 … … 263 263 args[nargs] = ( *new string( string("-D__CFA_PATCHLEVEL__=") + Patch ) ).c_str(); 264 264 nargs += 1; 265 args[nargs] = "-D__CFA__"; 266 nargs += 1; 267 args[nargs] = "-D__CFORALL__"; 265 args[nargs] = "-D__CFORALL__=1"; 268 266 nargs += 1; 269 267 … … 274 272 275 273 if ( CFA_flag ) { 276 args[nargs] = "-D__CFA_ PREPROCESS_";274 args[nargs] = "-D__CFA__"; 277 275 nargs += 1; 278 276 } // if … … 312 310 nargs += 1; 313 311 } // if 314 args[nargs] = "-fgnu89-inline";315 nargs += 1;316 312 args[nargs] = ( *new string( string("-B") + Bprefix + "/" ) ).c_str(); 317 313 nargs += 1; … … 319 315 nargs += 1; 320 316 } else { 321 cerr << argv[0] << " error, compiler \"" << compiler_name << "\" unsupported." << endl;317 cerr << argv[0] << " error, compiler " << compiler_name << " not supported." << endl; 322 318 exit( EXIT_FAILURE ); 323 319 } // if -
src/examples/Makefile.am
rf80e0218 r1b5c81ed 6 6 ## file "LICENCE" distributed with Cforall. 7 7 ## 8 ## Makefile.am -- 8 ## Makefile.am -- 9 9 ## 10 10 ## Author : Peter A. Buhr … … 19 19 CC = @CFA_BINDIR@/cfa 20 20 21 noinst_PROGRAMS = fstream_test vector_test avl_test# build but do not install21 noinst_PROGRAMS = fstream_test vector_test # build but do not install 22 22 fstream_test_SOURCES = fstream_test.c 23 23 vector_test_SOURCES = vector_int.c array.c vector_test.c 24 avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c -
src/examples/Makefile.in
rf80e0218 r1b5c81ed 36 36 PRE_UNINSTALL = : 37 37 POST_UNINSTALL = : 38 noinst_PROGRAMS = fstream_test$(EXEEXT) vector_test$(EXEEXT) \ 39 avl_test$(EXEEXT) 38 noinst_PROGRAMS = fstream_test$(EXEEXT) vector_test$(EXEEXT) 40 39 subdir = src/examples 41 40 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in … … 49 48 CONFIG_CLEAN_VPATH_FILES = 50 49 PROGRAMS = $(noinst_PROGRAMS) 51 am_avl_test_OBJECTS = avl_test.$(OBJEXT) avl0.$(OBJEXT) avl1.$(OBJEXT) \52 avl2.$(OBJEXT) avl3.$(OBJEXT) avl4.$(OBJEXT) \53 avl-private.$(OBJEXT)54 avl_test_OBJECTS = $(am_avl_test_OBJECTS)55 avl_test_LDADD = $(LDADD)56 50 am_fstream_test_OBJECTS = fstream_test.$(OBJEXT) 57 51 fstream_test_OBJECTS = $(am_fstream_test_OBJECTS) … … 65 59 am__depfiles_maybe = depfiles 66 60 am__mv = mv -f 67 AM_V_lt = $(am__v_lt_@AM_V@)68 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)69 am__v_lt_0 = --silent70 61 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 71 62 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 72 AM_V_CC = $(am__v_CC_@AM_V@)73 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)74 am__v_CC_0 = @echo " CC " $@;75 AM_V_at = $(am__v_at_@AM_V@)76 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)77 am__v_at_0 = @78 63 CCLD = $(CC) 79 64 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ 80 AM_V_CCLD = $(am__v_CCLD_@AM_V@) 81 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 82 am__v_CCLD_0 = @echo " CCLD " $@; 83 AM_V_GEN = $(am__v_GEN_@AM_V@) 84 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 85 am__v_GEN_0 = @echo " GEN " $@; 86 SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) \ 87 $(vector_test_SOURCES) 88 DIST_SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) \ 89 $(vector_test_SOURCES) 65 SOURCES = $(fstream_test_SOURCES) $(vector_test_SOURCES) 66 DIST_SOURCES = $(fstream_test_SOURCES) $(vector_test_SOURCES) 90 67 ETAGS = etags 91 68 CTAGS = ctags … … 94 71 ALLOCA = @ALLOCA@ 95 72 AMTAR = @AMTAR@ 96 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@97 73 AUTOCONF = @AUTOCONF@ 98 74 AUTOHEADER = @AUTOHEADER@ … … 102 78 CC = @CFA_BINDIR@/cfa 103 79 CCDEPMODE = @CCDEPMODE@ 104 CFA_BACKEND_CC = @CFA_BACKEND_CC@105 80 CFA_BINDIR = @CFA_BINDIR@ 106 81 CFA_INCDIR = @CFA_INCDIR@ … … 123 98 EGREP = @EGREP@ 124 99 EXEEXT = @EXEEXT@ 100 GCC_PATH = @GCC_PATH@ 125 101 GREP = @GREP@ 126 102 INSTALL = @INSTALL@ … … 200 176 fstream_test_SOURCES = fstream_test.c 201 177 vector_test_SOURCES = vector_int.c array.c vector_test.c 202 avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c203 178 all: all-am 204 179 … … 238 213 clean-noinstPROGRAMS: 239 214 -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) 240 avl_test$(EXEEXT): $(avl_test_OBJECTS) $(avl_test_DEPENDENCIES) $(EXTRA_avl_test_DEPENDENCIES)241 @rm -f avl_test$(EXEEXT)242 $(AM_V_CCLD)$(LINK) $(avl_test_OBJECTS) $(avl_test_LDADD) $(LIBS)243 215 fstream_test$(EXEEXT): $(fstream_test_OBJECTS) $(fstream_test_DEPENDENCIES) $(EXTRA_fstream_test_DEPENDENCIES) 244 216 @rm -f fstream_test$(EXEEXT) 245 $( AM_V_CCLD)$(LINK) $(fstream_test_OBJECTS) $(fstream_test_LDADD) $(LIBS)217 $(LINK) $(fstream_test_OBJECTS) $(fstream_test_LDADD) $(LIBS) 246 218 vector_test$(EXEEXT): $(vector_test_OBJECTS) $(vector_test_DEPENDENCIES) $(EXTRA_vector_test_DEPENDENCIES) 247 219 @rm -f vector_test$(EXEEXT) 248 $( AM_V_CCLD)$(LINK) $(vector_test_OBJECTS) $(vector_test_LDADD) $(LIBS)220 $(LINK) $(vector_test_OBJECTS) $(vector_test_LDADD) $(LIBS) 249 221 250 222 mostlyclean-compile: … … 255 227 256 228 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@ 257 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl-private.Po@am__quote@258 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl0.Po@am__quote@259 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl1.Po@am__quote@260 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl2.Po@am__quote@261 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl3.Po@am__quote@262 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl4.Po@am__quote@263 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl_test.Po@am__quote@264 229 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstream_test.Po@am__quote@ 265 230 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector_int.Po@am__quote@ … … 267 232 268 233 .c.o: 269 @am__fastdepCC_TRUE@ $( AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<270 @am__fastdepCC_TRUE@ $( AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po271 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@234 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 235 @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 236 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 272 237 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 273 @am__fastdepCC_FALSE@ $( AM_V_CC@am__nodep@)$(COMPILE) -c $<238 @am__fastdepCC_FALSE@ $(COMPILE) -c $< 274 239 275 240 .c.obj: 276 @am__fastdepCC_TRUE@ $( AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`277 @am__fastdepCC_TRUE@ $( AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po278 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@241 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 242 @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 243 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 279 244 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 280 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` 281 282 avl_test.o: avltree/avl_test.c 283 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl_test.o -MD -MP -MF $(DEPDIR)/avl_test.Tpo -c -o avl_test.o `test -f 'avltree/avl_test.c' || echo '$(srcdir)/'`avltree/avl_test.c 284 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl_test.Tpo $(DEPDIR)/avl_test.Po 285 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl_test.c' object='avl_test.o' libtool=no @AMDEPBACKSLASH@ 286 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 287 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl_test.o `test -f 'avltree/avl_test.c' || echo '$(srcdir)/'`avltree/avl_test.c 288 289 avl_test.obj: avltree/avl_test.c 290 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl_test.obj -MD -MP -MF $(DEPDIR)/avl_test.Tpo -c -o avl_test.obj `if test -f 'avltree/avl_test.c'; then $(CYGPATH_W) 'avltree/avl_test.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl_test.c'; fi` 291 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl_test.Tpo $(DEPDIR)/avl_test.Po 292 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl_test.c' object='avl_test.obj' libtool=no @AMDEPBACKSLASH@ 293 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 294 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl_test.obj `if test -f 'avltree/avl_test.c'; then $(CYGPATH_W) 'avltree/avl_test.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl_test.c'; fi` 295 296 avl0.o: avltree/avl0.c 297 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl0.o -MD -MP -MF $(DEPDIR)/avl0.Tpo -c -o avl0.o `test -f 'avltree/avl0.c' || echo '$(srcdir)/'`avltree/avl0.c 298 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl0.Tpo $(DEPDIR)/avl0.Po 299 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl0.c' object='avl0.o' libtool=no @AMDEPBACKSLASH@ 300 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 301 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl0.o `test -f 'avltree/avl0.c' || echo '$(srcdir)/'`avltree/avl0.c 302 303 avl0.obj: avltree/avl0.c 304 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl0.obj -MD -MP -MF $(DEPDIR)/avl0.Tpo -c -o avl0.obj `if test -f 'avltree/avl0.c'; then $(CYGPATH_W) 'avltree/avl0.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl0.c'; fi` 305 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl0.Tpo $(DEPDIR)/avl0.Po 306 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl0.c' object='avl0.obj' libtool=no @AMDEPBACKSLASH@ 307 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 308 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl0.obj `if test -f 'avltree/avl0.c'; then $(CYGPATH_W) 'avltree/avl0.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl0.c'; fi` 309 310 avl1.o: avltree/avl1.c 311 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl1.o -MD -MP -MF $(DEPDIR)/avl1.Tpo -c -o avl1.o `test -f 'avltree/avl1.c' || echo '$(srcdir)/'`avltree/avl1.c 312 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl1.Tpo $(DEPDIR)/avl1.Po 313 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl1.c' object='avl1.o' libtool=no @AMDEPBACKSLASH@ 314 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 315 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl1.o `test -f 'avltree/avl1.c' || echo '$(srcdir)/'`avltree/avl1.c 316 317 avl1.obj: avltree/avl1.c 318 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl1.obj -MD -MP -MF $(DEPDIR)/avl1.Tpo -c -o avl1.obj `if test -f 'avltree/avl1.c'; then $(CYGPATH_W) 'avltree/avl1.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl1.c'; fi` 319 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl1.Tpo $(DEPDIR)/avl1.Po 320 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl1.c' object='avl1.obj' libtool=no @AMDEPBACKSLASH@ 321 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 322 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl1.obj `if test -f 'avltree/avl1.c'; then $(CYGPATH_W) 'avltree/avl1.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl1.c'; fi` 323 324 avl2.o: avltree/avl2.c 325 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl2.o -MD -MP -MF $(DEPDIR)/avl2.Tpo -c -o avl2.o `test -f 'avltree/avl2.c' || echo '$(srcdir)/'`avltree/avl2.c 326 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl2.Tpo $(DEPDIR)/avl2.Po 327 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl2.c' object='avl2.o' libtool=no @AMDEPBACKSLASH@ 328 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 329 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl2.o `test -f 'avltree/avl2.c' || echo '$(srcdir)/'`avltree/avl2.c 330 331 avl2.obj: avltree/avl2.c 332 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl2.obj -MD -MP -MF $(DEPDIR)/avl2.Tpo -c -o avl2.obj `if test -f 'avltree/avl2.c'; then $(CYGPATH_W) 'avltree/avl2.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl2.c'; fi` 333 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl2.Tpo $(DEPDIR)/avl2.Po 334 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl2.c' object='avl2.obj' libtool=no @AMDEPBACKSLASH@ 335 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 336 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl2.obj `if test -f 'avltree/avl2.c'; then $(CYGPATH_W) 'avltree/avl2.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl2.c'; fi` 337 338 avl3.o: avltree/avl3.c 339 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl3.o -MD -MP -MF $(DEPDIR)/avl3.Tpo -c -o avl3.o `test -f 'avltree/avl3.c' || echo '$(srcdir)/'`avltree/avl3.c 340 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl3.Tpo $(DEPDIR)/avl3.Po 341 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl3.c' object='avl3.o' libtool=no @AMDEPBACKSLASH@ 342 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 343 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl3.o `test -f 'avltree/avl3.c' || echo '$(srcdir)/'`avltree/avl3.c 344 345 avl3.obj: avltree/avl3.c 346 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl3.obj -MD -MP -MF $(DEPDIR)/avl3.Tpo -c -o avl3.obj `if test -f 'avltree/avl3.c'; then $(CYGPATH_W) 'avltree/avl3.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl3.c'; fi` 347 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl3.Tpo $(DEPDIR)/avl3.Po 348 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl3.c' object='avl3.obj' libtool=no @AMDEPBACKSLASH@ 349 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 350 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl3.obj `if test -f 'avltree/avl3.c'; then $(CYGPATH_W) 'avltree/avl3.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl3.c'; fi` 351 352 avl4.o: avltree/avl4.c 353 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl4.o -MD -MP -MF $(DEPDIR)/avl4.Tpo -c -o avl4.o `test -f 'avltree/avl4.c' || echo '$(srcdir)/'`avltree/avl4.c 354 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl4.Tpo $(DEPDIR)/avl4.Po 355 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl4.c' object='avl4.o' libtool=no @AMDEPBACKSLASH@ 356 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 357 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl4.o `test -f 'avltree/avl4.c' || echo '$(srcdir)/'`avltree/avl4.c 358 359 avl4.obj: avltree/avl4.c 360 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl4.obj -MD -MP -MF $(DEPDIR)/avl4.Tpo -c -o avl4.obj `if test -f 'avltree/avl4.c'; then $(CYGPATH_W) 'avltree/avl4.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl4.c'; fi` 361 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl4.Tpo $(DEPDIR)/avl4.Po 362 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl4.c' object='avl4.obj' libtool=no @AMDEPBACKSLASH@ 363 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 364 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl4.obj `if test -f 'avltree/avl4.c'; then $(CYGPATH_W) 'avltree/avl4.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl4.c'; fi` 365 366 avl-private.o: avltree/avl-private.c 367 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl-private.o -MD -MP -MF $(DEPDIR)/avl-private.Tpo -c -o avl-private.o `test -f 'avltree/avl-private.c' || echo '$(srcdir)/'`avltree/avl-private.c 368 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl-private.Tpo $(DEPDIR)/avl-private.Po 369 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl-private.c' object='avl-private.o' libtool=no @AMDEPBACKSLASH@ 370 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 371 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl-private.o `test -f 'avltree/avl-private.c' || echo '$(srcdir)/'`avltree/avl-private.c 372 373 avl-private.obj: avltree/avl-private.c 374 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl-private.obj -MD -MP -MF $(DEPDIR)/avl-private.Tpo -c -o avl-private.obj `if test -f 'avltree/avl-private.c'; then $(CYGPATH_W) 'avltree/avl-private.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl-private.c'; fi` 375 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avl-private.Tpo $(DEPDIR)/avl-private.Po 376 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='avltree/avl-private.c' object='avl-private.obj' libtool=no @AMDEPBACKSLASH@ 377 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 378 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl-private.obj `if test -f 'avltree/avl-private.c'; then $(CYGPATH_W) 'avltree/avl-private.c'; else $(CYGPATH_W) '$(srcdir)/avltree/avl-private.c'; fi` 245 @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` 379 246 380 247 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -
src/examples/abstype.c
rf80e0218 r1b5c81ed 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 14 14:27:48 201613 // Update Count : 912 // Last Modified On : Wed May 27 18:10:01 2015 13 // Update Count : 4 14 14 // 15 15 16 otype T | { T x( T ); };16 type T | { T x( T ); }; 17 17 18 18 T y( T t ) { … … 21 21 } 22 22 23 forall( otype T ) lvalue T *?( T* );24 int ?++( int * );25 int ?=?( int *, int );26 forall( dtype DT ) DT * ?=?( DT **, DT* );23 forall(type T) lvalue T *?( T* ); 24 int ?++( int *); 25 int ?=?( int*, int ); 26 forall(dtype DT) DT* ?=?( DT **, DT* ); 27 27 28 otype U = int*;28 type U = int*; 29 29 30 30 U x( U u ) { -
src/examples/alloc.c
rf80e0218 r1b5c81ed 11 11 // Created On : Wed Feb 3 07:56:22 2016 12 12 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Fri Mar 11 17:42:08201614 // Update Count : 5913 // Last Modified On : Wed Feb 17 11:43:23 2016 14 // Update Count : 40 15 15 // 16 16 17 forall( otype T ) T * malloc( char fill );18 forall( dtype T ) T *?=?( T **, void * );19 void *malloc( unsigned long int );20 #if 021 17 #include <fstream> 22 18 #include <stdlib> … … 29 25 int * bar( int * p, int c ) { return p; } 30 26 int * baz( int * p, int c ) { return p; } 31 #endif32 27 33 28 int main( void ) { 34 #if 035 29 size_t size = 10; 36 30 int * p; 37 31 struct S { int x; double y; } * s; 38 #endif39 32 40 #if 041 33 p = malloc( sizeof(*p) ); // C malloc, type unsafe 42 34 printf( "here1\n" ); … … 45 37 printf( "here2\n" ); 46 38 free( p ); 47 #endif 48 // int * p; 49 // p = malloc( (char)'\0' ); // CFA malloc, type safe 50 (int *)malloc( (char)'\0' ); // CFA malloc, type safe 51 (void *)malloc( (char)'\0' ); // CFA malloc, type safe 52 #if 0 39 p = malloc( (char)'\0' ); // CFA malloc, type safe 53 40 printf( "here3\n" ); 54 41 p = malloc( p, 1000 ); // CFA remalloc, type safe … … 73 60 printf( "here9\n" ); 74 61 free( p ); 75 62 #if 0 76 63 float * fp = malloc() + 1; 77 64 fprintf( stderr, "%p %p\n", fp, fp - 1 ); -
src/examples/includes.c
rf80e0218 r1b5c81ed 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 13 22:30:02 201613 // Update Count : 3 7012 // Last Modified On : Wed Mar 2 23:28:02 2016 13 // Update Count : 328 14 14 // 15 15 … … 24 24 #if 1 25 25 #define _GNU_SOURCE 26 //#include <aio.h>27 //#include <a.out.h>28 //#include <aliases.h>29 //#include <alloca.h>30 //#include <ansidecl.h>31 //#include <ar.h>32 //#include <argp.h>26 #include <aio.h> 27 #include <a.out.h> 28 #include <aliases.h> 29 #include <alloca.h> 30 #include <ansidecl.h> 31 #include <ar.h> 32 #include <argp.h> 33 33 #include <argz.h> 34 //#include <assert.h>34 #include <assert.h> 35 35 #include <bfd.h> 36 #if 037 36 #include <bfdlink.h> 38 37 #include <byteswap.h> … … 57 56 #include <err.h> 58 57 #include <errno.h> 58 #if 0 59 59 #include <error.h> 60 #endif 60 61 #include <eti.h> 61 62 #include <evdns.h> 62 63 #include <event.h> 63 64 #include <evhttp.h> 64 #endif65 65 #if 0 66 66 #include <evrpc.h> … … 129 129 130 130 //#define _GNU_SOURCE 131 #include <bfd.h> 132 //#include <error.h> 131 #include <error.h> 133 132 134 133 #endif // 0 -
src/examples/sum.c
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // sum.c -- test resolvers ability to deal with many variables with the same name and to use the minimum number of casts 8 // necessary to disambiguate overloaded variable names. 7 // sum.c -- 9 8 // 10 9 // Author : Peter A. Buhr 11 10 // Created On : Wed May 27 17:56:53 2015 12 11 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Thu May 26 09:25:42201614 // Update Count : 20112 // Last Modified On : Fri Mar 4 15:06:47 2016 13 // Update Count : 196 15 14 // 16 15 … … 49 48 } // for 50 49 sout | "sum from" | low | "to" | High | "is" 51 | (int)sum( size, a ) | " , check" | (int)s | endl;50 | (int)sum( size, a ) | "" | ", check" | (int)s | endl; 52 51 53 52 int s = 0, a[size], v = low; … … 57 56 } // for 58 57 sout | "sum from" | low | "to" | High | "is" 59 | sum( size, (int *)a ) | " , check" | (int)s | endl;58 | sum( size, (int *)a ) | "" | ", check" | (int)s | endl; 60 59 61 60 float s = 0.0, a[size], v = low / 10.0; … … 65 64 } // for 66 65 sout | "sum from" | low / 10.0 | "to" | High / 10.0 | "is" 67 | sum( size, (float *)a ) | " , check" | (float)s | endl;66 | sum( size, (float *)a ) | "" | ", check" | (float)s | endl; 68 67 69 68 double s = 0, a[size], v = low / 10.0; … … 73 72 } // for 74 73 sout | "sum from" | low / 10.0 | "to" | High / 10.0 | "is" 75 | sum( size, (double *)a ) | " , check" | (double)s | endl;74 | sum( size, (double *)a ) | "" | ", check" | (double)s | endl; 76 75 77 76 struct S { int i, j; } 0 = { 0, 0 }, 1 = { 1, 1 }; 78 S ?+?( S t1, S t2 ) { return (S){ t1.i + t2.i, t1.j + t2.j }; }77 S ?+?( S t1, S t2 ) { S s = { t1.i + t2.i, t1.j + t2.j }; return s; } 79 78 S ?+=?( S *t1, S t2 ) { *t1 = *t1 + t2; return *t1; } 80 79 S ++?( S *t ) { *t += 1; return *t; } … … 88 87 } // for 89 88 sout | "sum from" | low | "to" | High | "is" 90 | sum( size, (S *)a ) | " , check" | (S)s | endl;89 | sum( size, (S *)a ) | "" | ", check" | (S)s | endl; 91 90 } // main 92 91 -
src/initialization.txt
rf80e0218 r1b5c81ed 34 34 sure that resolved initializers for all declarations are being 35 35 generated. 36 37 38 ------39 40 More recent email: (I am quoted; Richard is the responder)41 > As far as I'm aware, the only way that I could currently get the correct42 > results from the unification engine is by feeding it an expression that43 > looks like "?=?( ((struct Y)x.y).a, 10 )", then picking out the pieces that44 > I need (namely the correct choice for a). Does this seem like a reasonable45 > approach to solve this problem?46 47 No, unfortunately. Initialization isn't being rewritten as assignment,48 so you shouldn't allow the particular selection of assignment49 operators that happen to be in scope (and which may include50 user-defined operators) to guide the type resolution.51 52 I don't think there is any way to rewrite an initializer as a single53 expression and have the resolver just do the right thing. I see the54 algorithm as:55 56 For each alternative interpretation of the designator:57 Construct an expression that casts the initializer to the type of58 the designator59 Construct an AlternativeFinder and use it to find the lowest cost60 interpretation of the expression61 Add this interpretation to a list of possibilities62 Go through the list of possibilities and pick the lowest cost63 64 As with many things in the resolver, it's conceptually simple but the65 implementation may be a bit of a pain. It fits in with functions like66 findSingleExpression, findIntegralExpression in Resolver.cc, although67 it will be significantly more complicated than any of the existing68 ones.69 70 71 -
src/libcfa/Makefile.am
rf80e0218 r1b5c81ed 6 6 ## file "LICENCE" distributed with Cforall. 7 7 ## 8 ## Makefile.am -- 8 ## Makefile.am -- 9 9 ## 10 10 ## Author : Peter A. Buhr 11 11 ## Created On : Sun May 31 08:54:01 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Mon Jun 13 14:27:22201614 ## Update Count : 1 6613 ## Last Modified On : Wed Apr 6 21:10:44 2016 14 ## Update Count : 123 15 15 ############################################################################### 16 16 … … 50 50 @BACKEND_CC@ -c -o $@ $< 51 51 52 CFLAGS = - quiet -g -Wall -Wno-unused-function -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O253 CC = ${abs_top_srcdir}/src/driver/cfa 52 CFLAGS = -g -Wall -Wno-unused-function -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2 53 CC = ${abs_top_srcdir}/src/driver/cfa 54 54 55 headers = limits stdlib math iostream fstream iterator rational 56 libobjs = ${headers:=.o} 55 # extension-less header files are overridden by default make rules => explicitly override rule 56 % : %.c 57 true 57 58 58 # extensionless header files are overridden by -o flag in default makerule => explicitly override default rule to silently do nothing 59 % : %.c 60 @true 59 .c.o : ${abs_top_srcdir}/src/driver/cfa-cpp 60 ${CC} ${CFLAGS} -c -o $@ $< 61 61 62 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp # add dependency to cfa-cpp so all libraries are rebuilt with new translator 62 libs = limits stdlib iostream fstream iterator rational 63 libcfa_a_SOURCES = libcfa-prelude.c ${libs:=.c} 63 64 64 libcfa_a_SOURCES = libcfa-prelude.c ${headers:=.c} 65 cheaders = # expat 66 cfaheaders = # limits 67 include_HEADERS = ${cheaders:=.h} ${libs} ${cfaheaders} 65 68 66 include_HEADERS = ${headers}67 68 CLEANFILES = libcfa-prelude.c69 69 MAINTAINERCLEANFILES += ${includedir}/* -
src/libcfa/Makefile.in
rf80e0218 r1b5c81ed 81 81 AR = ar 82 82 ARFLAGS = cru 83 AM_V_AR = $(am__v_AR_@AM_V@)84 am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)85 am__v_AR_0 = @echo " AR " $@;86 AM_V_at = $(am__v_at_@AM_V@)87 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)88 am__v_at_0 = @89 83 libcfa_a_AR = $(AR) $(ARFLAGS) 90 84 libcfa_a_LIBADD = 91 am__objects_1 = limits.$(OBJEXT) stdlib.$(OBJEXT) math.$(OBJEXT) \ 92 iostream.$(OBJEXT) fstream.$(OBJEXT) iterator.$(OBJEXT) \ 93 rational.$(OBJEXT) 85 am__objects_1 = limits.$(OBJEXT) stdlib.$(OBJEXT) iostream.$(OBJEXT) \ 86 fstream.$(OBJEXT) iterator.$(OBJEXT) rational.$(OBJEXT) 94 87 am_libcfa_a_OBJECTS = libcfa-prelude.$(OBJEXT) $(am__objects_1) 95 88 libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS) … … 100 93 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 101 94 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 102 AM_V_CC = $(am__v_CC_@AM_V@)103 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)104 am__v_CC_0 = @echo " CC " $@;105 95 CCLD = $(CC) 106 96 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ 107 AM_V_CCLD = $(am__v_CCLD_@AM_V@)108 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)109 am__v_CCLD_0 = @echo " CCLD " $@;110 AM_V_GEN = $(am__v_GEN_@AM_V@)111 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)112 am__v_GEN_0 = @echo " GEN " $@;113 97 SOURCES = $(libcfa_a_SOURCES) 114 98 DIST_SOURCES = $(libcfa_a_SOURCES) … … 121 105 ALLOCA = @ALLOCA@ 122 106 AMTAR = @AMTAR@ 123 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@124 107 AUTOCONF = @AUTOCONF@ 125 108 AUTOHEADER = @AUTOHEADER@ … … 127 110 AWK = @AWK@ 128 111 BACKEND_CC = @BACKEND_CC@ 129 CC = ${abs_top_srcdir}/src/driver/cfa 112 CC = ${abs_top_srcdir}/src/driver/cfa 130 113 CCDEPMODE = @CCDEPMODE@ 131 CFA_BACKEND_CC = @CFA_BACKEND_CC@132 114 CFA_BINDIR = @CFA_BINDIR@ 133 115 CFA_INCDIR = @CFA_INCDIR@ 134 116 CFA_LIBDIR = @CFA_LIBDIR@ 135 117 CFA_PREFIX = @CFA_PREFIX@ 136 CFLAGS = - quiet -g -Wall -Wno-unused-function -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2118 CFLAGS = -g -Wall -Wno-unused-function -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2 137 119 CPP = @CPP@ 138 120 CPPFLAGS = @CPPFLAGS@ … … 148 130 EGREP = @EGREP@ 149 131 EXEEXT = @EXEEXT@ 132 GCC_PATH = @GCC_PATH@ 150 133 GREP = @GREP@ 151 134 INSTALL = @INSTALL@ … … 230 213 MAINTAINERCLEANFILES = ${addprefix ${libdir}/,${cfalib_DATA}} \ 231 214 ${addprefix ${libdir}/,${lib_LIBRARIES}} ${includedir}/* 232 headers = limits stdlib mathiostream fstream iterator rational233 lib objs = ${headers:=.o}234 libcfa_a_SOURCES = libcfa-prelude.c ${headers:=.c} 235 include_HEADERS = ${headers} 236 CLEANFILES = libcfa-prelude.c 215 libs = limits stdlib iostream fstream iterator rational 216 libcfa_a_SOURCES = libcfa-prelude.c ${libs:=.c} 217 cheaders = # expat 218 cfaheaders = # limits 219 include_HEADERS = ${cheaders:=.h} ${libs} ${cfaheaders} 237 220 all: all-am 238 221 … … 300 283 -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) 301 284 libcfa.a: $(libcfa_a_OBJECTS) $(libcfa_a_DEPENDENCIES) $(EXTRA_libcfa_a_DEPENDENCIES) 302 $(AM_V_at)-rm -f libcfa.a303 $( AM_V_AR)$(libcfa_a_AR) libcfa.a $(libcfa_a_OBJECTS) $(libcfa_a_LIBADD)304 $( AM_V_at)$(RANLIB) libcfa.a285 -rm -f libcfa.a 286 $(libcfa_a_AR) libcfa.a $(libcfa_a_OBJECTS) $(libcfa_a_LIBADD) 287 $(RANLIB) libcfa.a 305 288 306 289 mostlyclean-compile: … … 315 298 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa-prelude.Po@am__quote@ 316 299 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/limits.Po@am__quote@ 317 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/math.Po@am__quote@318 300 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rational.Po@am__quote@ 319 301 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdlib.Po@am__quote@ 320 302 321 .c.o :322 @am__fastdepCC_TRUE@ $( AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<323 @am__fastdepCC_TRUE@ $( AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po324 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@303 .c.obj: 304 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 305 @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 306 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 325 307 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 326 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< 327 328 .c.obj: 329 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 330 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 331 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 332 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 333 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` 308 @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` 334 309 install-cfalibDATA: $(cfalib_DATA) 335 310 @$(NORMAL_INSTALL) … … 480 455 481 456 clean-generic: 482 -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)483 457 484 458 distclean-generic: … … 605 579 @BACKEND_CC@ -c -o $@ $< 606 580 607 # extension less header files are overridden by -o flag in default makerule => explicitly override default rule to silently do nothing581 # extension-less header files are overridden by default make rules => explicitly override rule 608 582 % : %.c 609 @true 610 611 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp # add dependency to cfa-cpp so all libraries are rebuilt with new translator 583 true 584 585 .c.o : ${abs_top_srcdir}/src/driver/cfa-cpp 586 ${CC} ${CFLAGS} -c -o $@ $< 612 587 613 588 # Tell versions [3.59,3.63) of GNU make to not export all variables. -
src/libcfa/fstream
rf80e0218 r1b5c81ed 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Apr 28 08:08:04201613 // Update Count : 8 812 // Last Modified On : Tue Apr 5 22:37:12 2016 13 // Update Count : 82 14 14 // 15 15 … … 23 23 void *file; 24 24 _Bool sepDefault; 25 int sepOnOff; // FIX ME: type should be _Bool25 _Bool sepOnOff; 26 26 char separator[separateSize]; 27 27 }; // ofstream -
src/libcfa/fstream.c
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // fstream.c -- 7 // fstream.c -- 8 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Wed May 27 17:56:53 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Mon May 02 15:14:52201613 // Update Count : 1 8711 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 6 17:55:27 2016 13 // Update Count : 176 14 14 // 15 15 … … 75 75 if ( fclose( (FILE *)(os->file) ) == EOF ) { 76 76 perror( IO_MSG "close output" ); 77 } // if 77 } // if 78 78 } // close 79 79 … … 93 93 int prtfmt( ofstream * os, const char fmt[], ... ) { 94 94 va_list args; 95 95 96 va_start( args, fmt ); 96 97 int len = vfprintf( (FILE *)(os->file), fmt, args ); … … 102 103 } // if 103 104 va_end( args ); 104 105 sepReset( os ); // reset separator106 105 return len; 107 106 } // prtfmt … … 140 139 if ( fclose( (FILE *)(is->file) ) == EOF ) { 141 140 perror( IO_MSG "close input" ); 142 } // if 141 } // if 143 142 } // close 144 143 … … 155 154 return is; 156 155 } // read 157 156 158 157 ifstream *ungetc( ifstream * is, char c ) { 159 158 if ( fail( is ) ) { -
src/libcfa/iostream.c
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // iostream.c -- 7 // iostream.c -- 8 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu May 26 10:08:31201613 // Update Count : 30512 // Last Modified On : Wed Apr 6 16:13:29 2016 13 // Update Count : 278 14 14 // 15 15 … … 21 21 #include <float.h> // DBL_DIG, LDBL_DIG 22 22 #include <complex.h> // creal, cimag 23 #include <ctype.h> // isspace, ispunct 23 24 } 24 25 … … 33 34 ostype * ?|?( ostype *os, short int si ) { 34 35 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 36 sepReset( os ); 35 37 prtfmt( os, "%hd", si ); 36 38 return os; … … 40 42 ostype * ?|?( ostype *os, unsigned short int usi ) { 41 43 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 44 sepReset( os ); 42 45 prtfmt( os, "%hu", usi ); 43 46 return os; … … 47 50 ostype * ?|?( ostype *os, int i ) { 48 51 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 52 sepReset( os ); 49 53 prtfmt( os, "%d", i ); 50 54 return os; … … 54 58 ostype * ?|?( ostype *os, unsigned int ui ) { 55 59 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 60 sepReset( os ); 56 61 prtfmt( os, "%u", ui ); 57 62 return os; … … 61 66 ostype * ?|?( ostype *os, long int li ) { 62 67 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 68 sepReset( os ); 63 69 prtfmt( os, "%ld", li ); 64 70 return os; … … 68 74 ostype * ?|?( ostype *os, unsigned long int uli ) { 69 75 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 76 sepReset( os ); 70 77 prtfmt( os, "%lu", uli ); 71 78 return os; … … 75 82 ostype * ?|?( ostype *os, long long int lli ) { 76 83 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 84 sepReset( os ); 77 85 prtfmt( os, "%lld", lli ); 78 86 return os; … … 82 90 ostype * ?|?( ostype *os, unsigned long long int ulli ) { 83 91 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 92 sepReset( os ); 84 93 prtfmt( os, "%llu", ulli ); 85 94 return os; … … 89 98 ostype * ?|?( ostype *os, float f ) { 90 99 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 100 sepReset( os ); 91 101 prtfmt( os, "%g", f ); 92 102 return os; … … 96 106 ostype * ?|?( ostype *os, double d ) { 97 107 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 108 sepReset( os ); 98 109 prtfmt( os, "%.*lg", DBL_DIG, d ); 99 110 return os; … … 103 114 ostype * ?|?( ostype *os, long double ld ) { 104 115 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 116 sepReset( os ); 105 117 prtfmt( os, "%.*Lg", LDBL_DIG, ld ); 106 118 return os; … … 143 155 // opening delimiters 144 156 ['('] : Open, ['['] : Open, ['{'] : Open, 145 ['$'] : Open, [(unsigned char)'£'] : Open, [(unsigned char)'¥'] : Open, 146 [(unsigned char)'¡'] : Open, [(unsigned char)'¿'] : Open, [(unsigned char)'«'] : Open, 157 ['$'] : Open, [(unsigned char)'£'] : Open, [(unsigned char)'¥'] : Open, [(unsigned char)'¿'] : Open, [(unsigned char)'«'] : Open, 147 158 // closing delimiters 148 159 [','] : Close, ['.'] : Close, [':'] : Close, [';'] : Close, ['!'] : Close, ['?'] : Close, … … 151 162 // opening-closing delimiters 152 163 ['\''] : OpenClose, ['`'] : OpenClose, ['"'] : OpenClose, 153 [' '] : OpenClose, ['\f'] : OpenClose, ['\n'] : OpenClose, ['\r'] : OpenClose, ['\t'] : OpenClose, ['\v'] : OpenClose, // isspace164 ['\f'] : OpenClose, ['\n'] : OpenClose, ['\r'] : OpenClose, ['\t'] : OpenClose, ['\v'] : OpenClose, // isspace 154 165 }; // mask 155 166 156 if ( cp[0] == '\0' ) { sepOff( os ); return os; } // null string => no separator 157 167 int len = strlen( cp ); 168 // null string => no separator 169 if ( len == 0 ) { sepOff( os ); return os; } 158 170 // first character IS NOT spacing or closing punctuation => add left separator 159 171 unsigned char ch = cp[0]; // must make unsigned … … 161 173 prtfmt( os, "%s", sepGet( os ) ); 162 174 } // if 163 164 // if string starts line, must reset to determine open state because separator is off165 sepReset( os ); // reset separator166 167 175 // last character IS spacing or opening punctuation => turn off separator for next item 168 unsigned int len = strlen( cp ),posn = len - 1;176 unsigned int posn = len - 1; 169 177 ch = cp[posn]; // must make unsigned 170 if ( sepPrt( os ) && mask[ ch ] != Open && mask[ ch ] != OpenClose ) { 178 if ( mask[ ch ] == Open || mask[ ch ] == OpenClose ) { 179 sepOff( os ); 180 } else { 171 181 sepOn( os ); 172 } else {173 sepOff( os );174 182 } // if 175 183 return write( os, cp, len ); … … 179 187 ostype * ?|?( ostype *os, const void *p ) { 180 188 if ( sepPrt( os ) ) prtfmt( os, "%s", sepGet( os ) ); 189 sepReset( os ); 181 190 prtfmt( os, "%p", p ); 182 191 return os; … … 184 193 185 194 186 forall( dtype ostype | ostream( ostype ) ) 195 forall( dtype ostype | ostream( ostype ) ) 187 196 ostype * ?|?( ostype *os, ostype * (* manip)( ostype * ) ) { 188 197 return manip( os ); 189 198 } // ?|? 190 199 191 forall( dtype ostype | ostream( ostype ) ) 200 forall( dtype ostype | ostream( ostype ) ) 192 201 ostype * endl( ostype * os ) { 193 202 os | '\n'; … … 197 206 } // endl 198 207 199 forall( dtype ostype | ostream( ostype ) ) 208 forall( dtype ostype | ostream( ostype ) ) 200 209 ostype * sepOn( ostype * os ) { 201 210 sepOn( os ); … … 203 212 } // sepOn 204 213 205 forall( dtype ostype | ostream( ostype ) ) 214 forall( dtype ostype | ostream( ostype ) ) 206 215 ostype * sepOff( ostype * os ) { 207 216 sepOff( os ); … … 209 218 } // sepOff 210 219 211 forall( dtype ostype | ostream( ostype ) ) 220 forall( dtype ostype | ostream( ostype ) ) 212 221 ostype * sepEnable( ostype * os ) { 213 222 sepEnable( os ); … … 215 224 } // sepEnable 216 225 217 forall( dtype ostype | ostream( ostype ) ) 226 forall( dtype ostype | ostream( ostype ) ) 218 227 ostype * sepDisable( ostype * os ) { 219 228 sepDisable( os ); … … 335 344 } // ?|? 336 345 337 _Istream_cstrUC cstr( char * s tr ) { return (_Istream_cstrUC){ str }; }346 _Istream_cstrUC cstr( char * s ) { _Istream_cstrUC s = { s }; return s; } 338 347 forall( dtype istype | istream( istype ) ) 339 348 istype * ?|?( istype * is, _Istream_cstrUC cstr ) { … … 342 351 } // cstr 343 352 344 _Istream_cstrC cstr( char * s tr, int size ) { return (_Istream_cstrC){ str, size }; }353 _Istream_cstrC cstr( char * s, int size ) { _Istream_cstrC s = { s, size }; return s; } 345 354 forall( dtype istype | istream( istype ) ) 346 355 istype * ?|?( istype * is, _Istream_cstrC cstr ) { -
src/libcfa/prelude.cf
rf80e0218 r1b5c81ed 1 1 # 2 "prelude.cf" // needed for error messages from this file 2 // -*- Mode: C -*- 3 // 2 // -*- Mode: C -*- 3 // 4 4 // Copyright (C) Glen Ditchfield 1994, 1999 5 // 5 // 6 6 // prelude.cf -- Standard Cforall Preample for C99 7 // 7 // 8 8 // Author : Glen Ditchfield 9 9 // Created On : Sat Nov 29 07:23:41 2014 … … 117 117 forall( ftype FT ) lvalue FT *?( FT * ); 118 118 119 _Bool +?( _Bool ), -?( _Bool ), ~?( _Bool ); 120 signed int +?( signed int ), -?( signed int ), ~?( signed int ); 121 unsigned int +?( unsigned int ), -?( unsigned int ), ~?( unsigned int ); 122 signed long int +?( signed long int ), -?( signed long int ), ~?( signed long int ); 123 unsigned long int +?( unsigned long int ), -?( unsigned long int ), ~?( unsigned long int ); 124 signed long long int +?( signed long long int ), -?( signed long long int ), ~?( signed long long int ); 125 unsigned long long int +?( unsigned long long int ), -?( unsigned long long int ), ~?( unsigned long long int ); 119 _Bool +?( _Bool ), -?( _Bool ), ~?( _Bool ); 120 signed int +?( signed int ), -?( signed int ), ~?( signed int ); 121 unsigned int +?( unsigned int ), -?( unsigned int ), ~?( unsigned int ); 122 signed long int +?( signed long int ), -?( signed long int ), ~?( signed long int ); 123 unsigned long int +?( unsigned long int ), -?( unsigned long int ), ~?( unsigned long int ); 124 signed long long int +?( signed long long int ), -?( signed long long int ), ~?( signed long long int ); 125 unsigned long long int +?( unsigned long long int ), -?( unsigned long long int ), ~?( unsigned long long int ); 126 126 float +?( float ), -?( float ); 127 127 double +?( double ), -?( double ); … … 627 627 ?+=?( long double _Complex *, long double _Complex ), ?+=?( volatile long double _Complex *, long double _Complex ), 628 628 ?-=?( long double _Complex *, long double _Complex ), ?-=?( volatile long double _Complex *, long double _Complex ); 629 630 631 632 633 634 // ------------------------------------------------------------635 //636 // Section ??? Constructors and Destructors637 //638 // ------------------------------------------------------------639 640 // default ctor641 void ?{}( _Bool * ), ?{}( volatile _Bool * );642 void ?{}( char * ), ?{}( volatile char * );643 void ?{}( unsigned char * ), ?{}( volatile unsigned char * );644 void ?{}( char signed * ), ?{}( volatile char signed * );645 void ?{}( int short * ), ?{}( volatile int short * );646 void ?{}( int short unsigned * ), ?{}( volatile int short unsigned * );647 void ?{}( signed int * ), ?{}( volatile signed int * );648 void ?{}( unsigned int * ), ?{}( volatile unsigned int * );649 void ?{}( signed long int * ), ?{}( volatile signed long int * );650 void ?{}( unsigned long int * ), ?{}( volatile unsigned long int * );651 void ?{}( signed long long int * ), ?{}( volatile signed long long int * );652 void ?{}( unsigned long long int * ), ?{}( volatile unsigned long long int * );653 void ?{}( float * ), ?{}( volatile float * );654 void ?{}( double * ), ?{}( volatile double * );655 void ?{}( long double * ), ?{}( volatile long double * );656 void ?{}( float _Complex * ), ?{}( volatile float _Complex * );657 void ?{}( double _Complex * ), ?{}( volatile double _Complex * );658 void ?{}( long double _Complex * ), ?{}( volatile long double _Complex * );659 660 // copy ctor661 void ?{}( _Bool *, _Bool ), ?{}( volatile _Bool *, _Bool );662 void ?{}( char *, char ), ?{}( volatile char *, char );663 void ?{}( unsigned char *, unsigned char ), ?{}( volatile unsigned char *, unsigned char );664 void ?{}( char signed *, char signed ), ?{}( volatile char signed *, char signed );665 void ?{}( int short *, int short ), ?{}( volatile int short *, int short );666 void ?{}( int short unsigned *, int short unsigned ), ?{}( volatile int short unsigned *, int short unsigned );667 void ?{}( signed int *, signed int), ?{}( volatile signed int *, signed int );668 void ?{}( unsigned int *, unsigned int), ?{}( volatile unsigned int *, unsigned int );669 void ?{}( signed long int *, signed long int), ?{}( volatile signed long int *, signed long int );670 void ?{}( unsigned long int *, unsigned long int), ?{}( volatile unsigned long int *, unsigned long int );671 void ?{}( signed long long int *, signed long long int), ?{}( volatile signed long long int *, signed long long int );672 void ?{}( unsigned long long int *, unsigned long long int), ?{}( volatile unsigned long long int *, unsigned long long int );673 void ?{}( float *, float), ?{}( volatile float *, float );674 void ?{}( double *, double), ?{}( volatile double *, double );675 void ?{}( long double *, long double), ?{}( volatile long double *, long double );676 void ?{}( float _Complex *, float _Complex), ?{}( volatile float _Complex *, float _Complex );677 void ?{}( double _Complex *, double _Complex), ?{}( volatile double _Complex *, double _Complex );678 void ?{}( long double _Complex *, long double _Complex), ?{}( volatile long double _Complex *, long double _Complex );679 680 // dtor681 void ^?{}( _Bool * ), ^?{}( volatile _Bool * );682 void ^?{}( char * ), ^?{}( volatile char * );683 void ^?{}( char unsigned * ), ^?{}( volatile char unsigned * );684 void ^?{}( char signed * ), ^?{}( volatile char signed * );685 void ^?{}( int short * ), ^?{}( volatile int short * );686 void ^?{}( int short unsigned * ), ^?{}( volatile int short unsigned * );687 void ^?{}( signed int * ), ^?{}( volatile signed int * );688 void ^?{}( unsigned int * ), ^?{}( volatile unsigned int * );689 void ^?{}( signed long int * ), ^?{}( volatile signed long int * );690 void ^?{}( unsigned long int * ), ^?{}( volatile unsigned long int * );691 void ^?{}( signed long long int * ), ^?{}( volatile signed long long int * );692 void ^?{}( unsigned long long int * ), ^?{}( volatile unsigned long long int * );693 void ^?{}( float * ), ^?{}( volatile float * );694 void ^?{}( double * ), ^?{}( volatile double * );695 void ^?{}( long double * ), ^?{}( volatile long double * );696 void ^?{}( float _Complex * ), ^?{}( volatile float _Complex * );697 void ^?{}( double _Complex * ), ^?{}( volatile double _Complex * );698 void ^?{}( long double _Complex * ), ^?{}( volatile long double _Complex * );699 700 // // default ctor701 // forall( dtype DT ) void ?{}( DT ** );702 // forall( dtype DT ) void ?{}( const DT ** );703 // forall( dtype DT ) void ?{}( volatile DT ** );704 // forall( dtype DT ) void ?{}( const volatile DT ** );705 706 // // copy ctor707 // forall( dtype DT ) void ?{}( DT **, DT* );708 // forall( dtype DT ) void ?{}( const DT **, DT* );709 // forall( dtype DT ) void ?{}( volatile DT **, DT* );710 // forall( dtype DT ) void ?{}( const volatile DT **, DT* );711 712 // // dtor713 // forall( dtype DT ) void ^?{}( DT ** );714 // forall( dtype DT ) void ^?{}( const DT ** );715 // forall( dtype DT ) void ^?{}( volatile DT ** );716 // forall( dtype DT ) void ^?{}( const volatile DT ** );717 718 // copied from assignment section719 // copy constructors720 forall( ftype FT ) void ?{}( FT **, FT * );721 forall( ftype FT ) void ?{}( FT * volatile *, FT * );722 723 forall( dtype DT ) void ?{}( DT * *, DT * );724 forall( dtype DT ) void ?{}( DT * volatile *, DT * );725 forall( dtype DT ) void ?{}( const DT * *, DT * );726 forall( dtype DT ) void ?{}( const DT * volatile *, DT * );727 forall( dtype DT ) void ?{}( const DT * *, const DT * );728 forall( dtype DT ) void ?{}( const DT * volatile *, const DT * );729 forall( dtype DT ) void ?{}( volatile DT * *, DT * );730 forall( dtype DT ) void ?{}( volatile DT * volatile *, DT * );731 forall( dtype DT ) void ?{}( volatile DT * *, volatile DT * );732 forall( dtype DT ) void ?{}( volatile DT * volatile *, volatile DT * );733 734 forall( dtype DT ) void ?{}( const volatile DT * *, DT * );735 forall( dtype DT ) void ?{}( const volatile DT * volatile *, DT * );736 forall( dtype DT ) void ?{}( const volatile DT * *, const DT * );737 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const DT * );738 forall( dtype DT ) void ?{}( const volatile DT * *, volatile DT * );739 forall( dtype DT ) void ?{}( const volatile DT * volatile *, volatile DT * );740 forall( dtype DT ) void ?{}( const volatile DT * *, const volatile DT * );741 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const volatile DT * );742 743 forall( dtype DT ) void ?{}( DT * *, void * );744 forall( dtype DT ) void ?{}( DT * volatile *, void * );745 forall( dtype DT ) void ?{}( const DT * *, void * );746 forall( dtype DT ) void ?{}( const DT * volatile *, void * );747 forall( dtype DT ) void ?{}( const DT * *, const void * );748 forall( dtype DT ) void ?{}( const DT * volatile *, const void * );749 forall( dtype DT ) void ?{}( volatile DT * *, void * );750 forall( dtype DT ) void ?{}( volatile DT * volatile *, void * );751 forall( dtype DT ) void ?{}( volatile DT * *, volatile void * );752 forall( dtype DT ) void ?{}( volatile DT * volatile *, volatile void * );753 754 forall( dtype DT ) void ?{}( const volatile DT * *, void * );755 forall( dtype DT ) void ?{}( const volatile DT * volatile *, void * );756 forall( dtype DT ) void ?{}( const volatile DT * *, const void * );757 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const void * );758 forall( dtype DT ) void ?{}( const volatile DT * *, volatile void * );759 forall( dtype DT ) void ?{}( const volatile DT * volatile *, volatile void * );760 forall( dtype DT ) void ?{}( const volatile DT * *, const volatile void * );761 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const volatile void * );762 763 forall( dtype DT ) void ?{}( void * *, DT * );764 forall( dtype DT ) void ?{}( void * volatile *, DT * );765 forall( dtype DT ) void ?{}( const void * *, DT * );766 forall( dtype DT ) void ?{}( const void * volatile *, DT * );767 forall( dtype DT ) void ?{}( const void * *, const DT * );768 forall( dtype DT ) void ?{}( const void * volatile *, const DT * );769 forall( dtype DT ) void ?{}( volatile void * *, DT * );770 forall( dtype DT ) void ?{}( volatile void * volatile *, DT * );771 forall( dtype DT ) void ?{}( volatile void * *, volatile DT * );772 forall( dtype DT ) void ?{}( volatile void * volatile *, volatile DT * );773 forall( dtype DT ) void ?{}( const volatile void * *, DT * );774 forall( dtype DT ) void ?{}( const volatile void * volatile *, DT * );775 forall( dtype DT ) void ?{}( const volatile void * *, const DT * );776 forall( dtype DT ) void ?{}( const volatile void * volatile *, const DT * );777 forall( dtype DT ) void ?{}( const volatile void * *, volatile DT * );778 forall( dtype DT ) void ?{}( const volatile void * volatile *, volatile DT * );779 forall( dtype DT ) void ?{}( const volatile void * *, const volatile DT * );780 forall( dtype DT ) void ?{}( const volatile void * volatile *, const volatile DT * );781 782 void ?{}( void * *, void * );783 void ?{}( void * volatile *, void * );784 void ?{}( const void * *, void * );785 void ?{}( const void * volatile *, void * );786 void ?{}( const void * *, const void * );787 void ?{}( const void * volatile *, const void * );788 void ?{}( volatile void * *, void * );789 void ?{}( volatile void * volatile *, void * );790 void ?{}( volatile void * *, volatile void * );791 void ?{}( volatile void * volatile *, volatile void * );792 void ?{}( const volatile void * *, void * );793 void ?{}( const volatile void * volatile *, void * );794 void ?{}( const volatile void * *, const void * );795 void ?{}( const volatile void * volatile *, const void * );796 void ?{}( const volatile void * *, volatile void * );797 void ?{}( const volatile void * volatile *, volatile void * );798 void ?{}( const volatile void * *, const volatile void * );799 void ?{}( const volatile void * volatile *, const volatile void * );800 801 //forall( dtype DT ) void ?{}( DT * *, forall( dtype DT2 ) const DT2 * );802 //forall( dtype DT ) void ?{}( DT * volatile *, forall( dtype DT2 ) const DT2 * );803 forall( dtype DT ) void ?{}( const DT * *, forall( dtype DT2 ) const DT2 * );804 forall( dtype DT ) void ?{}( const DT * volatile *, forall( dtype DT2 ) const DT2 * );805 //forall( dtype DT ) void ?{}( volatile DT * *, forall( dtype DT2 ) const DT2 * );806 //forall( dtype DT ) void ?{}( volatile DT * volatile *, forall( dtype DT2 ) const DT2 * );807 forall( dtype DT ) void ?{}( const volatile DT * *, forall( dtype DT2 ) const DT2 * );808 forall( dtype DT ) void ?{}( const volatile DT * volatile *, forall( dtype DT2 ) const DT2 * );809 810 forall( ftype FT ) void ?{}( FT * *, forall( ftype FT2 ) FT2 * );811 forall( ftype FT ) void ?{}( FT * volatile *, forall( ftype FT2 ) FT2 * );812 813 // default ctors814 forall( ftype FT ) void ?{}( FT * * );815 forall( ftype FT ) void ?{}( FT * volatile * );816 817 forall( dtype DT ) void ?{}( DT * *);818 forall( dtype DT ) void ?{}( DT * volatile *);819 forall( dtype DT ) void ?{}( const DT * *);820 forall( dtype DT ) void ?{}( const DT * volatile *);821 forall( dtype DT ) void ?{}( volatile DT * *);822 forall( dtype DT ) void ?{}( volatile DT * volatile *);823 forall( dtype DT ) void ?{}( const volatile DT * *);824 forall( dtype DT ) void ?{}( const volatile DT * volatile *);825 826 void ?{}( void * *);827 void ?{}( void * volatile *);828 void ?{}( const void * *);829 void ?{}( const void * volatile *);830 void ?{}( volatile void * *);831 void ?{}( volatile void * volatile *);832 void ?{}( const volatile void * *);833 void ?{}( const volatile void * volatile *);834 835 // dtors836 forall( ftype FT ) void ^?{}( FT * * );837 forall( ftype FT ) void ^?{}( FT * volatile * );838 839 forall( dtype DT ) void ^?{}( DT * *);840 forall( dtype DT ) void ^?{}( DT * volatile *);841 forall( dtype DT ) void ^?{}( const DT * *);842 forall( dtype DT ) void ^?{}( const DT * volatile *);843 forall( dtype DT ) void ^?{}( volatile DT * *);844 forall( dtype DT ) void ^?{}( volatile DT * volatile *);845 forall( dtype DT ) void ^?{}( const volatile DT * *);846 forall( dtype DT ) void ^?{}( const volatile DT * volatile *);847 848 void ^?{}( void * *);849 void ^?{}( void * volatile *);850 void ^?{}( const void * *);851 void ^?{}( const void * volatile *);852 void ^?{}( volatile void * *);853 void ^?{}( volatile void * volatile *);854 void ^?{}( const volatile void * *);855 void ^?{}( const volatile void * volatile *); -
src/libcfa/rational
rf80e0218 r1b5c81ed 12 12 // Created On : Wed Apr 6 17:56:25 2016 13 13 // Last Modified By : Peter A. Buhr 14 // Last Modified On : Wed May 4 14:11:45201615 // Update Count : 1 614 // Last Modified On : Fri Apr 8 11:38:27 2016 15 // Update Count : 15 16 16 // 17 17 … … 28 28 29 29 // constructors 30 void ?{}( Rational * r);31 void ?{}( Rational * r,long int n );32 void ?{}( Rational * r,long int n, long int d );30 Rational rational(); 31 Rational rational( long int n ); 32 Rational rational( long int n, long int d ); 33 33 34 34 // getter/setter for numerator/denominator -
src/libcfa/rational.c
rf80e0218 r1b5c81ed 11 11 // Created On : Wed Apr 6 17:54:28 2016 12 12 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Wed May 4 14:16:14201614 // Update Count : 2 513 // Last Modified On : Tue Apr 12 21:26:42 2016 14 // Update Count : 21 15 15 // 16 16 … … 18 18 #include "fstream" 19 19 #include "stdlib" 20 #include "math" // floor21 20 22 21 … … 53 52 // constructors 54 53 55 void ?{}( Rational * r) {56 r { 0, 1 };54 Rational rational() { 55 return (Rational){ 0, 1 }; 57 56 } // rational 58 57 59 void ?{}( Rational * r,long int n ) {60 r { n, 1 };58 Rational rational( long int n ) { 59 return (Rational){ n, 1 }; 61 60 } // rational 62 61 63 void ?{}( Rational * r,long int n, long int d ) {62 Rational rational( long int n, long int d ) { 64 63 long int t = simplify( &n, &d ); // simplify 65 r->numerator = n / t; 66 r->denominator = d / t; 64 return (Rational){ n / t, d / t }; 67 65 } // rational 68 66 … … 173 171 Rational narrow( double f, long int md ) { 174 172 if ( md <= 1 ) { // maximum fractional digits too small? 175 return (Rational){ f, 1}; // truncate fraction 173 Rational t = rational( f, 1 ); // truncate fraction 174 return t; 176 175 } // if 177 176 … … 199 198 k[2] = x * k[1] + k[0]; k[0] = k[1]; k[1] = k[2]; 200 199 } // for 201 return (Rational){ neg ? -h[1] : h[1], k[1] }; 200 Rational t = rational( neg ? -h[1] : h[1], k[1] ); 201 return t; 202 202 } // narrow 203 203 -
src/libcfa/stdlib
rf80e0218 r1b5c81ed 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 27 22:03:29201613 // Update Count : 9612 // Last Modified On : Wed Apr 13 14:45:53 2016 13 // Update Count : 85 14 14 // 15 15 … … 28 28 #endif // ! EXIT_FAILURE 29 29 void exit( int rc ); 30 void abort( void );31 30 } // extern "C" 32 31 33 32 //--------------------------------------- 34 33 35 extern "C" { void * malloc( size_t ); } // use default C routine for void * 34 extern "C" { 35 void * malloc( size_t ); // use default C routine for void * 36 } // extern "C" 36 37 forall( otype T ) T * malloc( void ); 37 38 forall( otype T ) T * malloc( char fill ); 38 39 forall( otype T ) T * malloc( T * ptr, size_t size ); 39 40 forall( otype T ) T * malloc( T * ptr, size_t size, unsigned char fill ); 40 extern "C" { void * calloc( size_t nmemb, size_t size ); } // use default C routine for void * 41 extern "C" { 42 void * calloc( size_t nmemb, size_t size ); // use default C routine for void * 43 } // extern "C" 41 44 forall( otype T ) T * calloc( size_t nmemb ); 42 extern "C" { void * realloc( void * ptr, size_t size ); } // use default C routine for void * 45 extern "C" { 46 void * realloc( void * ptr, size_t size ); // use default C routine for void * 47 } // extern "C" 43 48 forall( otype T ) T * realloc( T * ptr, size_t size ); 44 49 forall( otype T ) T * realloc( T * ptr, size_t size, unsigned char fill ); … … 48 53 forall( otype T ) int posix_memalign( T ** ptr, size_t alignment ); 49 54 50 extern "C" { 51 void * memset( void * ptr, int fill, size_t size ); 52 void free( void * ptr ); 53 } // extern "C" 55 forall( otype T ) T * memset( T * ptr, unsigned char fill ); // use default value '\0' for fill 56 forall( otype T ) T * memset( T * ptr ); // remove when default value available 54 57 55 58 //--------------------------------------- … … 97 100 98 101 char abs( char ); 99 extern "C" { int abs( int ); } // use default C routine for int 102 extern "C" { 103 int abs( int ); // use default C routine for int 104 } // extern "C" 100 105 long int abs( long int ); 101 106 long long int abs( long long int ); … … 103 108 double abs( double ); 104 109 long double abs( long double ); 105 float abs( float _Complex ); 106 double abs( double _Complex ); 107 long double abs( long double _Complex ); 110 float _Complex abs( float _Complex ); 111 double _Complex abs( double _Complex ); 112 long double _Complex abs( long double _Complex ); 113 114 //--------------------------------------- 115 116 float floor( float ); 117 extern "C" { 118 double floor( double ); // use C routine for double 119 } // extern "C" 120 long double floor( long double ); 121 122 float ceil( float ); 123 extern "C" { 124 double ceil( double ); // use C routine for double 125 } // extern "C" 126 long double ceil( long double ); 108 127 109 128 //--------------------------------------- -
src/libcfa/stdlib.c
rf80e0218 r1b5c81ed 10 10 // Created On : Thu Jan 28 17:10:29 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Apr 28 07:54:21201613 // Update Count : 1 6612 // Last Modified On : Wed Apr 13 14:49:58 2016 13 // Update Count : 155 14 14 // 15 15 … … 24 24 #include <malloc.h> // malloc_usable_size 25 25 #include <math.h> // fabsf, fabs, fabsl 26 #include <complex.h> // _Complex_I 26 #include <complex.h> // _Complex_I, cabsf, cabs, cabsl 27 27 } // extern "C" 28 28 … … 34 34 //printf( "malloc3\n" ); 35 35 T * ptr = (T *)malloc( sizeof(T) ); 36 return memset( ptr , (int)fill, sizeof(T));36 return memset( ptr ); 37 37 } // malloc 38 38 … … 78 78 } // posix_memalign 79 79 80 forall( otype T ) T * memset( T * ptr, unsigned char fill ) { // use default value '\0' for fill 81 //printf( "memset1\n" ); 82 return (T *)memset( ptr, (int)fill, malloc_usable_size( ptr ) ); 83 } // memset 84 forall( otype T ) T * memset( T * ptr ) { // remove when default value available 85 //printf( "memset2\n" ); 86 return (T *)memset( ptr, 0, malloc_usable_size( ptr ) ); 87 } // memset 88 80 89 //--------------------------------------- 81 90 82 91 int ato( const char * ptr ) { 83 92 int i; 84 if ( sscanf( ptr, "%d", &i ) == EOF ) {} 93 if ( sscanf( ptr, "%d", &i ) == EOF ) {} // check return code 85 94 return i; 86 95 } 87 96 unsigned int ato( const char * ptr ) { 88 97 unsigned int ui; 89 if ( sscanf( ptr, "%u", &ui ) == EOF ) {} 98 if ( sscanf( ptr, "%u", &ui ) == EOF ) {} // check return code 90 99 return ui; 91 100 } 92 101 long int ato( const char * ptr ) { 93 102 long int li; 94 if ( sscanf( ptr, "%ld", &li ) == EOF ) {} 103 if ( sscanf( ptr, "%ld", &li ) == EOF ) {} // check return code 95 104 return li; 96 105 } 97 106 unsigned long int ato( const char * ptr ) { 98 107 unsigned long int uli; 99 if ( sscanf( ptr, "%lu", &uli ) == EOF ) {} 108 if ( sscanf( ptr, "%lu", &uli ) == EOF ) {} // check return code 100 109 return uli; 101 110 } 102 111 long long int ato( const char * ptr ) { 103 112 long long int lli; 104 if ( sscanf( ptr, "%lld", &lli ) == EOF ) {} 113 if ( sscanf( ptr, "%lld", &lli ) == EOF ) {} // check return code 105 114 return lli; 106 115 } 107 116 unsigned long long int ato( const char * ptr ) { 108 117 unsigned long long int ulli; 109 if ( sscanf( ptr, "%llu", &ulli ) == EOF ) {} 118 if ( sscanf( ptr, "%llu", &ulli ) == EOF ) {} // check return code 110 119 return ulli; 111 120 } … … 113 122 float ato( const char * ptr ) { 114 123 float f; 115 if ( sscanf( ptr, "%f", &f ) == EOF ) {} 124 if ( sscanf( ptr, "%f", &f ) == EOF ) {} // check return code 116 125 return f; 117 126 } 118 127 double ato( const char * ptr ) { 119 128 double d; 120 if ( sscanf( ptr, "%lf", &d ) == EOF ) {} 129 if ( sscanf( ptr, "%lf", &d ) == EOF ) {} // check return code 121 130 return d; 122 131 } 123 132 long double ato( const char * ptr ) { 124 133 long double ld; 125 if ( sscanf( ptr, "%Lf", &ld ) == EOF ) {} 134 if ( sscanf( ptr, "%Lf", &ld ) == EOF ) {} // check return code 126 135 return ld; 127 136 } … … 129 138 float _Complex ato( const char * ptr ) { 130 139 float re, im; 131 if ( sscanf( ptr, "%g%gi", &re, &im ) == EOF ) {} 140 if ( sscanf( ptr, "%g%gi", &re, &im ) == EOF ) {} // check return code 132 141 return re + im * _Complex_I; 133 142 } 134 143 double _Complex ato( const char * ptr ) { 135 144 double re, im; 136 if ( sscanf( ptr, "%lf%lfi", &re, &im ) == EOF ) {} 145 if ( sscanf( ptr, "%lf%lfi", &re, &im ) == EOF ) {} // check return code 137 146 return re + im * _Complex_I; 138 147 } 139 148 long double _Complex ato( const char * ptr ) { 140 149 long double re, im; 141 if ( sscanf( ptr, "%Lf%Lfi", &re, &im ) == EOF ) {} 150 if ( sscanf( ptr, "%Lf%Lfi", &re, &im ) == EOF ) {} // check return code 142 151 return re + im * _Complex_I; 143 152 } … … 213 222 //--------------------------------------- 214 223 215 //forall( otype T | { T ?/?( T, T ); T ?%?( T, T ); } )216 // [ T, T ] div( T t1, T t2 ) { return [ t1 / t2, t1 % t2 ];}224 forall( otype T | { T ?/?( T, T ); T ?%?( T, T ); } ) 225 [ T, T ] div( T t1, T t2 ) { /* return [ t1 / t2, t1 % t2 ]; */ } 217 226 218 227 //--------------------------------------- … … 221 230 long int abs( long int v ) { return labs( v ); } 222 231 long long int abs( long long int v ) { return llabs( v ); } 223 float abs( float x ) { return fabsf( x ); } 224 double abs( double x ) { return fabs( x ); } 225 long double abs( long double x ) { return fabsl( x ); } 226 float abs( float _Complex x ) { return cabsf( x ); } 227 double abs( double _Complex x ) { return cabs( x ); } 228 long double abs( long double _Complex x ) { return cabsl( x ); } 232 float abs( float v ) { return fabsf( v ); } 233 double abs( double v ) { return fabs( v ); } 234 long double abs( long double v ) { return fabsl( v ); } 235 float _Complex abs( float _Complex v ) { return cabsf( v ); } 236 double _Complex abs( double _Complex v ) { return cabs( v ); } 237 long double _Complex abs( long double _Complex v ) { return cabsl( v ); } 238 239 //--------------------------------------- 240 241 float floor( float v ) { return floorf( v ); } 242 long double floor( long double v ) { return floorl( v ); } 243 244 float ceil( float v ) { return ceilf( v ); } 245 long double ceil( long double v ) { return ceill( v ); } 229 246 230 247 //--------------------------------------- -
src/main.cc
rf80e0218 r1b5c81ed 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // main.cc -- 7 // main.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Jun 5 15:57:30 201613 // Update Count : 20512 // Last Modified On : Wed Jan 27 22:20:20 2016 13 // Update Count : 199 14 14 // 15 15 … … 40 40 #include "MakeLibCfa.h" 41 41 #include "InitTweak/Mutate.h" 42 #include "InitTweak/GenInit.h" 43 #include "InitTweak/FixInit.h" 44 #include "InitTweak/FixGlobalInit.h" 42 #include "InitTweak/RemoveInit.h" 45 43 //#include "Explain/GenProlog.h" 46 44 //#include "Try/Visit.h" … … 57 55 58 56 static void parse( FILE * input, LinkageSpec::Type t, bool shouldExit = false ); 59 static void dump( std::list< Declaration * > & translationUnit , std::ostream & out = std::cout);57 static void dump( std::list< Declaration * > & translationUnit ); 60 58 61 59 bool 62 60 astp = false, 63 61 bresolvep = false, 64 bboxp = false,65 ctorinitp = false,66 62 exprp = false, 67 63 expraltp = false, … … 78 74 codegenp = false; 79 75 80 enum { Ast, B box, Bresolver, CtorInitFix, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Tree, Validate, };76 enum { Ast, Bresolver, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Tree, Validate, }; 81 77 82 78 static struct option long_opts[] = { 83 79 { "ast", no_argument, 0, Ast }, 84 { "before-box", no_argument, 0, Bbox },85 80 { "before-resolver", no_argument, 0, Bresolver }, 86 { "ctorinitfix", no_argument, 0, CtorInitFix },87 81 { "expr", no_argument, 0, Expr }, 88 82 { "expralt", no_argument, 0, ExprAlt }, … … 103 97 std::ostream *output = &std::cout; 104 98 int long_index; 105 std::list< Declaration * > translationUnit; 106 const char *filename = NULL; 99 std::list< Declaration* > translationUnit; 107 100 108 101 opterr = 0; // prevent getopt from printing error messages 109 102 110 103 int c; 111 while ( (c = getopt_long( argc, argv, "ab BcefglnpqrstvyzD:F:", long_opts, &long_index )) != -1 ) {104 while ( (c = getopt_long( argc, argv, "abefglnpqrstvyzD:", long_opts, &long_index )) != -1 ) { 112 105 switch ( c ) { 113 106 case Ast: … … 119 112 bresolvep = true; 120 113 break; 121 case 'B': // print before resolver steps122 bboxp = true;123 break;124 case CtorInitFix:125 case 'c':126 ctorinitp = true;127 break;128 114 case Expr: 129 115 case 'e': // dump AST after expression analysis … … 177 163 case 'D': // ignore -Dxxx 178 164 break; 179 case 'F': // source file-name without suffix180 filename = optarg;181 break;182 165 case '?': 183 166 cout << "Unknown option: '" << (char)optopt << "'" << endl; 184 exit( EXIT_FAILURE);167 exit(1); 185 168 default: 186 169 abort(); … … 193 176 input = fopen( argv[ optind ], "r" ); 194 177 if ( ! input ) { 195 std::cout << "Error: can't open " << argv[ optind] << std::endl;196 exit( EXIT_FAILURE);178 std::cout << "Error: can't open " << argv[optind] << std::endl; 179 exit( 1 ); 197 180 } // if 198 // if running cfa-cpp directly, might forget to pass -F option (and really shouldn't have to)199 if ( filename == NULL ) filename = argv[ optind ];200 // prelude filename comes in differently201 if ( libcfap ) filename = "prelude.cf";202 181 optind += 1; 203 182 } else { 204 183 input = stdin; 205 // if running cfa-cpp directly, might forget to pass -F option. Since this takes from stdin, pass206 // a fake name along207 if ( filename == NULL ) filename = "stdin";208 184 } // if 209 185 … … 211 187 output = new ofstream( argv[ optind ] ); 212 188 } // if 213 189 214 190 Parser::get_parser().set_debug( grammarp ); 215 191 … … 220 196 if ( builtins == NULL ) { 221 197 std::cerr << "Error: can't open builtins.cf" << std::endl; 222 exit( EXIT_FAILURE);198 exit( 1 ); 223 199 } // if 224 200 … … 230 206 if ( prelude == NULL ) { 231 207 std::cerr << "Error: can't open prelude.cf" << std::endl; 232 exit( EXIT_FAILURE);208 exit( 1 ); 233 209 } // if 234 210 235 211 parse( prelude, LinkageSpec::Intrinsic ); 236 212 } // if 237 213 } // if 238 214 239 parse( input, libcfap ? LinkageSpec::Intrinsic : LinkageSpec::Cforall, grammarp ); 240 215 parse( input, libcfap ? LinkageSpec::Intrinsic : LinkageSpec::Cforall, grammarp ); 216 241 217 if ( parsep ) { 242 218 Parser::get_parser().get_parseTree()->printList( std::cout ); … … 273 249 OPTPRINT( "mutate" ) 274 250 ControlStruct::mutate( translationUnit ); 275 OPTPRINT( "fixNames" ) 251 OPTPRINT( "fixNames" ) 276 252 CodeGen::fixNames( translationUnit ); 277 OPTPRINT( "fixGlobalInit" ); 278 InitTweak::fixGlobalInit( translationUnit, filename, libcfap || treep ); 279 OPTPRINT( "tweakInit" ) 280 InitTweak::genInit( translationUnit ); 253 OPTPRINT( "tweak" ) 254 InitTweak::tweak( translationUnit ); 281 255 282 256 if ( libcfap ) { … … 294 268 if ( exprp ) { 295 269 dump( translationUnit ); 296 return 0;297 }298 299 OPTPRINT( "fixInit" )300 // fix ObjectDecl - replaces ConstructorInit nodes301 InitTweak::fix( translationUnit );302 if ( ctorinitp ) {303 dump ( translationUnit );304 return 0;305 270 } 306 271 … … 311 276 OPTPRINT( "convertLvalue" ) 312 277 GenPoly::convertLvalue( translationUnit ); 313 314 if ( bboxp ) {315 dump( translationUnit );316 return 0;317 }318 278 OPTPRINT( "box" ) 319 279 GenPoly::box( translationUnit ); 320 280 321 281 // print tree right before code generation 322 282 if ( codegenp ) { … … 332 292 } catch ( SemanticError &e ) { 333 293 if ( errorp ) { 334 std::cerr << "---AST at error:---" << std::endl; 335 dump( translationUnit, std::cerr ); 336 std::cerr << std::endl << "---End of AST, begin error message:---\n" << std::endl; 294 dump( translationUnit ); 337 295 } 338 296 e.print( std::cerr ); … … 356 314 } // try 357 315 358 deleteAll( translationUnit );359 316 return 0; 360 317 } // main … … 374 331 } 375 332 376 static void dump( std::list< Declaration * > & translationUnit , std::ostream & out) {333 static void dump( std::list< Declaration * > & translationUnit ) { 377 334 std::list< Declaration * > decls; 378 335 if ( noprotop ) { 379 filter( translationUnit.begin(), translationUnit.end(), 336 filter( translationUnit.begin(), translationUnit.end(), 380 337 std::back_inserter( decls ), notPrelude ); 381 338 } else { … … 383 340 } 384 341 385 printAll( decls, out );342 printAll( decls, std::cout ); 386 343 deleteAll( translationUnit ); 387 344 }
Note:
See TracChangeset
for help on using the changeset viewer.