aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/LangRef.html16
-rw-r--r--include/llvm/DerivedTypes.h19
-rw-r--r--include/llvm/Function.h7
-rw-r--r--include/llvm/Instructions.h18
-rw-r--r--include/llvm/ParameterAttributes.h9
-rw-r--r--include/llvm/Support/CallSite.h6
-rw-r--r--lib/Analysis/BasicAliasAnalysis.cpp4
-rw-r--r--lib/AsmParser/llvmAsmParser.cpp.cvs1780
-rw-r--r--lib/AsmParser/llvmAsmParser.h.cvs12
-rw-r--r--lib/AsmParser/llvmAsmParser.y174
-rw-r--r--lib/AsmParser/llvmAsmParser.y.cvs237
-rw-r--r--lib/Bitcode/Reader/BitcodeReader.cpp31
-rw-r--r--lib/Bitcode/Writer/BitcodeWriter.cpp37
-rw-r--r--lib/Bitcode/Writer/ValueEnumerator.cpp17
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp22
-rw-r--r--lib/Linker/LinkModules.cpp1
-rw-r--r--lib/Target/CBackend/CBackend.cpp42
-rw-r--r--lib/Target/MSIL/MSILWriter.cpp3
-rw-r--r--lib/Target/X86/X86AsmPrinter.cpp4
-rw-r--r--lib/Target/X86/X86ISelLowering.cpp2
-rw-r--r--lib/Transforms/IPO/ArgumentPromotion.cpp35
-rw-r--r--lib/Transforms/IPO/DeadArgumentElimination.cpp38
-rw-r--r--lib/Transforms/IPO/ExtractFunction.cpp1
-rw-r--r--lib/Transforms/IPO/LowerSetJmp.cpp2
-rw-r--r--lib/Transforms/IPO/PruneEH.cpp1
-rw-r--r--lib/Transforms/Scalar/InstructionCombining.cpp29
-rw-r--r--lib/Transforms/Scalar/LowerGC.cpp2
-rw-r--r--lib/Transforms/Scalar/SimplifyCFG.cpp18
-rw-r--r--lib/Transforms/Utils/CloneFunction.cpp5
-rw-r--r--lib/Transforms/Utils/CloneModule.cpp3
-rw-r--r--lib/Transforms/Utils/InlineFunction.cpp1
-rw-r--r--lib/Transforms/Utils/LowerInvoke.cpp4
-rw-r--r--lib/Transforms/Utils/SimplifyCFG.cpp2
-rw-r--r--lib/VMCore/AsmWriter.cpp51
-rw-r--r--lib/VMCore/AutoUpgrade.cpp11
-rw-r--r--lib/VMCore/Function.cpp34
-rw-r--r--lib/VMCore/Instructions.cpp44
-rw-r--r--lib/VMCore/Type.cpp56
-rw-r--r--lib/VMCore/Verifier.cpp6
-rw-r--r--test/Assembler/2006-05-26-VarargsCallEncode.ll2
-rw-r--r--test/Assembler/2007-02-07-UpgradeCSRETCC.ll4
-rw-r--r--test/Assembler/2007-11-26-AttributeOverload.ll4
-rw-r--r--test/Assembler/2007-11-27-AutoUpgradeAttributes.ll3
-rw-r--r--test/Feature/paramattrs.ll2
-rw-r--r--test/Integer/paramattrs_bt.ll2
-rw-r--r--test/Transforms/SimplifyCFG/2006-10-29-InvokeCrash.ll2
-rw-r--r--tools/llvm-upgrade/UpgradeParser.cpp.cvs7676
-rw-r--r--tools/llvm-upgrade/UpgradeParser.h.cvs511
-rw-r--r--tools/llvm-upgrade/UpgradeParser.y158
-rw-r--r--tools/llvm-upgrade/UpgradeParser.y.cvs158
-rw-r--r--tools/llvm2cpp/CppWriter.cpp116
51 files changed, 6278 insertions, 5144 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 0c2f8ca8c1..f85a441e53 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -764,9 +764,9 @@ a power of 2.</p>
<p>The return type and each parameter of a function type may have a set of
<i>parameter attributes</i> associated with them. Parameter attributes are
used to communicate additional information about the result or parameters of
- a function. Parameter attributes are considered to be part of the function
- type so two functions types that differ only by the parameter attributes
- are different function types.</p>
+ a function. Parameter attributes are considered to be part of the function,
+ not of the function type, so functions with different parameter attributes
+ can have the same function type.</p>
<p>Parameter attributes are simple keywords that follow the type specified. If
multiple parameter attributes are needed, they are space separated. For
@@ -774,15 +774,13 @@ a power of 2.</p>
<div class="doc_code">
<pre>
-%someFunc = i16 (i8 signext %someParam) zeroext
-%someFunc = i16 (i8 zeroext %someParam) zeroext
+declare i32 @printf(i8* noalias , ...) nounwind
+declare i32 @atoi(i8*) nounwind readonly
</pre>
</div>
- <p>Note that the two function types above are unique because the parameter has
- a different attribute (<tt>signext</tt> in the first one, <tt>zeroext</tt> in
- the second). Also note that the attribute for the function result
- (<tt>zeroext</tt>) comes immediately after the argument list.</p>
+ <p>Note that any attributes for the function result (<tt>nounwind</tt>,
+ <tt>readonly</tt>) come immediately after the argument list.</p>
<p>Currently, only the following parameter attributes are defined:</p>
<dl>
diff --git a/include/llvm/DerivedTypes.h b/include/llvm/DerivedTypes.h
index 1ae8cbd45b..12219c5354 100644
--- a/include/llvm/DerivedTypes.h
+++ b/include/llvm/DerivedTypes.h
@@ -31,7 +31,6 @@ class PointerValType;
class VectorValType;
class IntegerValType;
class APInt;
-class ParamAttrsList;
class DerivedType : public Type {
friend class Type;
@@ -140,12 +139,11 @@ public:
class FunctionType : public DerivedType {
friend class TypeMap<FunctionValType, FunctionType>;
bool isVarArgs;
- const ParamAttrsList *ParamAttrs;
FunctionType(const FunctionType &); // Do not implement
const FunctionType &operator=(const FunctionType &); // Do not implement
FunctionType(const Type *Result, const std::vector<const Type*> &Params,
- bool IsVarArgs, const ParamAttrsList *Attrs = 0);
+ bool IsVarArgs);
public:
/// FunctionType::get - This static method is the primary way of constructing
@@ -154,12 +152,7 @@ public:
static FunctionType *get(
const Type *Result, ///< The result type
const std::vector<const Type*> &Params, ///< The types of the parameters
- bool isVarArg, ///< Whether this is a variable argument length function
- const ParamAttrsList *Attrs = 0
- ///< Indicates the parameter attributes to use, if any. The 0th entry
- ///< in the list refers to the return type. Parameters are numbered
- ///< starting at 1. This argument must be on the heap and FunctionType
- ///< owns it after its passed here.
+ bool isVarArg ///< Whether this is a variable argument length function
);
inline bool isVarArg() const { return isVarArgs; }
@@ -177,14 +170,6 @@ public:
///
unsigned getNumParams() const { return NumContainedTys - 1; }
- bool isStructReturn() const;
-
- /// The parameter attributes for the \p ith parameter are returned. The 0th
- /// parameter refers to the return type of the function.
- /// @returns The ParameterAttributes for the \p ith parameter.
- /// @brief Get the attributes for a parameter
- const ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
-
// Implement the AbstractTypeUser interface.
virtual void refineAbstractType(const DerivedType *OldTy, const Type *NewTy);
virtual void typeBecameConcrete(const DerivedType *AbsTy);
diff --git a/include/llvm/Function.h b/include/llvm/Function.h
index 56ed5c26f0..897e53b0a2 100644
--- a/include/llvm/Function.h
+++ b/include/llvm/Function.h
@@ -68,7 +68,7 @@ private:
BasicBlockListType BasicBlocks; ///< The basic blocks
mutable ArgumentListType ArgumentList; ///< The formal arguments
ValueSymbolTable *SymTab; ///< Symbol table of args/instructions
- ParamAttrsList *ParamAttrs; ///< Parameter attributes
+ const ParamAttrsList *ParamAttrs; ///< Parameter attributes
// The Calling Convention is stored in Value::SubclassData.
/*unsigned CallingConvention;*/
@@ -150,7 +150,10 @@ public:
/// Sets the parameter attributes for this Function. To construct a
/// ParamAttrsList, see ParameterAttributes.h
/// @brief Set the parameter attributes.
- void setParamAttrs(ParamAttrsList *attrs);
+ void setParamAttrs(const ParamAttrsList *attrs);
+
+ /// @brief Determine if the function returns a structure.
+ bool isStructReturn() const;
/// deleteBody - This method deletes the body of the function, and converts
/// the linkage to external.
diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h
index ba132cfd58..96ca43d6ca 100644
--- a/include/llvm/Instructions.h
+++ b/include/llvm/Instructions.h
@@ -836,7 +836,7 @@ public:
///
class CallInst : public Instruction {
- ParamAttrsList *ParamAttrs; ///< parameter attributes for call
+ const ParamAttrsList *ParamAttrs; ///< parameter attributes for call
CallInst(const CallInst &CI);
void init(Value *Func, Value* const *Params, unsigned NumParams);
void init(Value *Func, Value *Actual1, Value *Actual2);
@@ -916,12 +916,15 @@ public:
/// parameter attributes information, if any.
/// @returns 0 if no attributes have been set.
/// @brief Get the parameter attributes.
- ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
+ const ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
/// Sets the parameter attributes for this CallInst. To construct a
/// ParamAttrsList, see ParameterAttributes.h
/// @brief Set the parameter attributes.
- void setParamAttrs(ParamAttrsList *attrs);
+ void setParamAttrs(const ParamAttrsList *attrs);
+
+ /// @brief Determine if the call returns a structure.
+ bool isStructReturn() const;
/// getCalledFunction - Return the function being called by this instruction
/// if it is a direct call. If it is a call through a function pointer,
@@ -1620,7 +1623,7 @@ private:
/// calling convention of the call.
///
class InvokeInst : public TerminatorInst {
- ParamAttrsList *ParamAttrs;
+ const ParamAttrsList *ParamAttrs;
InvokeInst(const InvokeInst &BI);
void init(Value *Fn, BasicBlock *IfNormal, BasicBlock *IfException,
Value* const *Args, unsigned NumArgs);
@@ -1691,12 +1694,15 @@ public:
/// parameter attributes information, if any.
/// @returns 0 if no attributes have been set.
/// @brief Get the parameter attributes.
- ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
+ const ParamAttrsList *getParamAttrs() const { return ParamAttrs; }
/// Sets the parameter attributes for this InvokeInst. To construct a
/// ParamAttrsList, see ParameterAttributes.h
/// @brief Set the parameter attributes.
- void setParamAttrs(ParamAttrsList *attrs);
+ void setParamAttrs(const ParamAttrsList *attrs);
+
+ /// @brief Determine if the call returns a structure.
+ bool isStructReturn() const;
/// getCalledFunction - Return the function called, or null if this is an
/// indirect function invocation.
diff --git a/include/llvm/ParameterAttributes.h b/include/llvm/ParameterAttributes.h
index 1dd98eaa90..79b5d0c2a6 100644
--- a/include/llvm/ParameterAttributes.h
+++ b/include/llvm/ParameterAttributes.h
@@ -77,7 +77,7 @@ const uint16_t MutuallyIncompatible[3] = {
/// with a parameter index.
/// @brief ParameterAttributes with a parameter index.
struct ParamAttrsWithIndex {
- uint16_t attrs; ///< The attributes that are set, |'d together
+ uint16_t attrs; ///< The attributes that are set, or'd together
uint16_t index; ///< Index of the parameter for which the attributes apply
static ParamAttrsWithIndex get(uint16_t idx, uint16_t attrs) {
@@ -219,6 +219,13 @@ class ParamAttrsList : public FoldingSetNode {
/// @brief Return the number of parameter attributes this type has.
unsigned size() const { return attrs.size(); }
+ /// @brief Return the number of references to this ParamAttrsList.
+ unsigned numRefs() const { return refCount; }
+
+ /// @}
+ /// @name Mutators
+ /// @{
+ public:
/// Classes retaining references to ParamAttrsList objects should call this
/// method to increment the reference count. This ensures that the
/// ParamAttrsList object will not disappear until the class drops it.
diff --git a/include/llvm/Support/CallSite.h b/include/llvm/Support/CallSite.h
index fec7efc4cb..d03d209d5f 100644
--- a/include/llvm/Support/CallSite.h
+++ b/include/llvm/Support/CallSite.h
@@ -27,6 +27,7 @@ namespace llvm {
class CallInst;
class InvokeInst;
+class ParamAttrsList;
class CallSite {
Instruction *I;
@@ -57,6 +58,11 @@ public:
unsigned getCallingConv() const;
void setCallingConv(unsigned CC);
+ /// getParamAttrs/setParamAttrs - get or set the parameter attributes of
+ /// the call.
+ const ParamAttrsList *getParamAttrs() const;
+ void setParamAttrs(const ParamAttrsList *PAL);
+
/// getType - Return the type of the instruction that generated this call site
///
const Type *getType() const { return I->getType(); }
diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp
index 2291852c86..82dee547a9 100644
--- a/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/lib/Analysis/BasicAliasAnalysis.cpp
@@ -268,7 +268,7 @@ BasicAliasAnalysis::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
static bool isNoAliasArgument(const Argument *Arg) {
const Function *Func = Arg->getParent();
- const ParamAttrsList *Attr = Func->getFunctionType()->getParamAttrs();
+ const ParamAttrsList *Attr = Func->getParamAttrs();
if (Attr) {
unsigned Idx = 1;
for (Function::const_arg_iterator I = Func->arg_begin(),
@@ -839,7 +839,7 @@ BasicAliasAnalysis::getModRefBehavior(Function *F, CallSite CS,
return UnknownModRefBehavior;
}
- const ParamAttrsList *Attrs = F->getFunctionType()->getParamAttrs();
+ const ParamAttrsList *Attrs = F->getParamAttrs();
if (Attrs && Attrs->paramHasAttr(0, ParamAttr::ReadNone))
return DoesNotAccessMemory;
if (Attrs && Attrs->paramHasAttr(0, ParamAttr::ReadOnly))
diff --git a/lib/AsmParser/llvmAsmParser.cpp.cvs b/lib/AsmParser/llvmAsmParser.cpp.cvs
index 4a1534881f..5907eec578 100644
--- a/lib/AsmParser/llvmAsmParser.cpp.cvs
+++ b/lib/AsmParser/llvmAsmParser.cpp.cvs
@@ -214,8 +214,8 @@
NOALIAS = 395,
BYVAL = 396,
NEST = 397,
- CONST = 398,
- PURE = 399,
+ READNONE = 398,
+ READONLY = 399,
DEFAULT = 400,
HIDDEN = 401,
PROTECTED = 402
@@ -362,8 +362,8 @@
#define NOALIAS 395
#define BYVAL 396
#define NEST 397
-#define CONST 398
-#define PURE 399
+#define READNONE 398
+#define READONLY 399
#define DEFAULT 400
#define HIDDEN 401
#define PROTECTED 402
@@ -372,7 +372,7 @@
/* Copy the first part of user declarations. */
-#line 14 "/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 14 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
#include "ParserInternals.h"
#include "llvm/CallingConv.h"
@@ -391,9 +391,6 @@
#include <list>
#include <map>
#include <utility>
-#ifndef NDEBUG
-#define YYDEBUG 1
-#endif
// The following is a gross hack. In order to rid the libAsmParser library of
// exceptions, we have to have a way of getting the yyparse function to go into
@@ -413,15 +410,6 @@ static bool TriggerError = false;
int yyerror(const char *ErrorMsg); // Forward declarations to prevent "implicit
int yylex(); // declaration" of xxx warnings.
int yyparse();
-
-namespace llvm {
- std::string CurFilename;
-#if YYDEBUG
-static cl::opt<bool>
-Debug("debug-yacc", cl::desc("Print yacc debug state changes"),
- cl::Hidden, cl::init(false));
-#endif
-}
using namespace llvm;
static Module *ParserResult;
@@ -875,7 +863,7 @@ static Value *getVal(const Type *Ty, const ValID &ID) {
// Remember where this forward reference came from. FIXME, shouldn't we try
// to recycle these things??
CurModule.PlaceHolderInfo.insert(std::make_pair(V, std::make_pair(ID,
- llvmAsmlineno)));
+ LLLgetLineNo())));
if (inFunctionScope())
InsertValue(V, CurFun.LateResolveValues);
@@ -1307,22 +1295,11 @@ static PATypeHolder HandleUpRefs(const Type *ty) {
//
static Module* RunParser(Module * M);
-Module *llvm::RunVMAsmParser(const std::string &Filename, FILE *F) {
- set_scan_file(F);
-
- CurFilename = Filename;
- return RunParser(new Module(CurFilename));
-}
-
-Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
- set_scan_string(AsmString);
-
- CurFilename = "from_memory";
- if (M == NULL) {
- return RunParser(new Module (CurFilename));
- } else {
- return RunParser(M);
- }
+Module *llvm::RunVMAsmParser(llvm::MemoryBuffer *MB) {
+ InitLLLexer(MB);
+ Module *M = RunParser(new Module(LLLgetFilename()));
+ FreeLexer();
+ return M;
}
@@ -1347,7 +1324,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 968 "/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 945 "/home/duncan/LLVM/llvm.top/llvm/lib/AsmParser/llvmAsmParser.y"
{
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
@@ -1394,8 +1371,8 @@ typedef union YYSTYPE
llvm::ICmpInst::Predicate IPredicate;
llvm::FCmpInst::Predicate FPredicate;
}
-/* Line 193 of yacc.c. */
-#line 1399 "llvmAsmParser.tab.c"
+/* Line 187 of yacc.c. */
+#line 1376 "llvmAsmParser.tab.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -1408,7 +1385,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */
-#line 1412 "llvmAsmParser.tab.c"
+#line 1389 "llvmAsmParser.tab.c"
#ifdef short
# undef short
@@ -1458,7 +1435,7 @@ typedef short int yytype_int16;
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
+# if YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -1623,7 +1600,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 43
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1754
+#define YYLAST 1816
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 162
@@ -1632,7 +1609,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */
#define YYNRULES 314
/* YYNRULES -- Number of states. */
-#define YYNSTATES 602
+#define YYNSTATES 608
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -1720,10 +1697,10 @@ static const yytype_uint16 yyprhs[] =
690, 692, 694, 696, 700, 702, 708, 710, 712, 714,
716, 718, 720, 723, 726, 729, 733, 736, 737, 739,
742, 745, 749, 759, 769, 778, 793, 795, 797, 804,
- 810, 813, 820, 828, 832, 836, 842, 848, 849, 850,
- 854, 857, 859, 865, 871, 878, 885, 890, 897, 902,
- 907, 914, 921, 924, 933, 935, 937, 938, 942, 949,
- 953, 960, 963, 969, 977
+ 810, 813, 820, 828, 833, 838, 845, 852, 853, 854,
+ 858, 861, 863, 869, 875, 882, 889, 894, 901, 906,
+ 911, 918, 925, 928, 937, 939, 941, 942, 946, 953,
+ 957, 964, 967, 973, 981
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -1752,7 +1729,7 @@ static const yytype_int16 yyrhs[] =
135, -1, 117, -1, 134, -1, 118, -1, 137, -1,
138, -1, 140, -1, 141, -1, 142, -1, -1, 184,
183, -1, 136, -1, 139, -1, 135, -1, 134, -1,
- 144, -1, 143, -1, -1, 186, 185, -1, -1, 53,
+ 143, -1, 144, -1, -1, 186, 185, -1, -1, 53,
4, -1, -1, 149, 53, 4, -1, 34, 22, -1,
-1, 189, -1, -1, 149, 192, 191, -1, 189, -1,
53, 4, -1, 11, -1, 12, -1, 13, -1, 16,
@@ -1811,60 +1788,60 @@ static const yytype_int16 yyrhs[] =
17, 229, -1, 71, -1, 72, -1, 235, 168, 227,
149, 17, 229, -1, 168, 227, 149, 17, 229, -1,
172, 241, -1, 194, 154, 229, 149, 229, 156, -1,
- 237, 149, 154, 229, 149, 229, 156, -1, 194, 229,
- 184, -1, 17, 229, 184, -1, 238, 149, 194, 229,
- 184, -1, 238, 149, 17, 229, 184, -1, -1, -1,
- 239, 149, 230, -1, 56, 55, -1, 55, -1, 163,
- 194, 229, 149, 229, -1, 164, 194, 229, 149, 229,
- -1, 88, 166, 194, 229, 149, 229, -1, 89, 167,
- 194, 229, 149, 229, -1, 165, 230, 38, 194, -1,
- 129, 230, 149, 230, 149, 230, -1, 130, 230, 149,
- 194, -1, 131, 230, 149, 230, -1, 132, 230, 149,
- 230, 149, 230, -1, 133, 230, 149, 230, 149, 230,
- -1, 128, 237, -1, 240, 182, 196, 229, 152, 238,
- 153, 186, -1, 243, -1, 36, -1, -1, 110, 194,
- 188, -1, 110, 194, 149, 11, 229, 188, -1, 111,
- 194, 188, -1, 111, 194, 149, 11, 229, 188, -1,
- 112, 230, -1, 242, 113, 194, 229, 188, -1, 242,
- 114, 230, 149, 194, 229, 188, -1, 115, 194, 229,
- 239, -1
+ 237, 149, 154, 229, 149, 229, 156, -1, 194, 184,
+ 229, 184, -1, 17, 184, 229, 184, -1, 238, 149,
+ 194, 184, 229, 184, -1, 238, 149, 17, 184, 229,
+ 184, -1, -1, -1, 239, 149, 230, -1, 56, 55,
+ -1, 55, -1, 163, 194, 229, 149, 229, -1, 164,
+ 194, 229, 149, 229, -1, 88, 166, 194, 229, 149,
+ 229, -1, 89, 167, 194, 229, 149, 229, -1, 165,
+ 230, 38, 194, -1, 129, 230, 149, 230, 149, 230,
+ -1, 130, 230, 149, 194, -1, 131, 230, 149, 230,
+ -1, 132, 230, 149, 230, 149, 230, -1, 133, 230,
+ 149, 230, 149, 230, -1, 128, 237, -1, 240, 182,
+ 196, 229, 152, 238, 153, 186, -1, 243, -1, 36,
+ -1, -1, 110, 194, 188, -1, 110, 194, 149, 11,
+ 229, 188, -1, 111, 194, 188, -1, 111, 194, 149,
+ 11, 229, 188, -1, 112, 230, -1, 242, 113, 194,
+ 229, 188, -1, 242, 114, 230, 149, 194, 229, 188,
+ -1, 115, 194, 229, 239, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
- 1128, 1129, 1129, 1129, 1129, 1129, 1129, 1130, 1130, 1130,
- 1130, 1130, 1130, 1131, 1131, 1131, 1131, 1131, 1131, 1134,
- 1134, 1135, 1135, 1136, 1136, 1137, 1137, 1138, 1138, 1142,
- 1142, 1143, 1143, 1144, 1144, 1145, 1145, 1146, 1146, 1147,
- 1147, 1148, 1148, 1149, 1150, 1155, 1156, 1156, 1156, 1156,
- 1156, 1158, 1158, 1158, 1159, 1159, 1163, 1167, 1172, 1172,
- 1174, 1175, 1180, 1186, 1187, 1188, 1189, 1190, 1194, 1195,
- 1196, 1200, 1201, 1202, 1203, 1207, 1208, 1209, 1213, 1214,
- 1215, 1216, 1217, 1221, 1222, 1223, 1226, 1227, 1228, 1229,
- 1230, 1231, 1232, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
- 1246, 1247, 1250, 1251, 1256, 1257, 1258, 1259, 1260, 1261,
- 1264, 1265, 1272, 1273, 1279, 1280, 1288, 1296, 1297, 1302,
- 1303, 1304, 1309, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1325, 1329, 1333, 1340, 1345, 1353, 1383, 1414, 1419, 1429,
- 1439, 1443, 1453, 1460, 1467, 1474, 1479, 1484, 1491, 1492,
- 1499, 1506, 1514, 1520, 1532, 1560, 1576, 1603, 1631, 1657,
- 1677, 1703, 1723, 1735, 1742, 1808, 1818, 1828, 1834, 1844,
- 1850, 1860, 1865, 1870, 1883, 1895, 1917, 1925, 1931, 1942,
- 1947, 1952, 1958, 1964, 1973, 1977, 1985, 1985, 1988, 1988,
- 1991, 2003, 2024, 2029, 2037, 2038, 2042, 2042, 2046, 2046,
- 2049, 2052, 2076, 2087, 2087, 2098, 2097, 2107, 2106, 2117,
- 2157, 2160, 2166, 2176, 2180, 2185, 2187, 2192, 2197, 2206,
- 2216, 2227, 2231, 2240, 2249, 2254, 2375, 2375, 2377, 2386,
- 2386, 2388, 2393, 2405, 2409, 2414, 2418, 2422, 2426, 2430,
- 2434, 2438, 2442, 2446, 2471, 2475, 2485, 2489, 2493, 2498,
- 2505, 2505, 2511, 2520, 2524, 2533, 2542, 2551, 2555, 2562,
- 2566, 2570, 2575, 2585, 2604, 2613, 2693, 2697, 2704, 2715,
- 2728, 2738, 2749, 2759, 2768, 2774, 2783, 2789, 2792, 2793,
- 2800, 2804, 2809, 2825, 2842, 2856, 2870, 2882, 2890, 2897,
- 2903, 2909, 2915, 2930, 3015, 3020, 3024, 3031, 3038, 3046,
- 3053, 3061, 3069, 3083, 3100
+ 0, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+ 1105, 1106, 1106, 1106, 1106, 1106, 1106, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1108, 1108, 1108, 1108, 1108, 1108, 1111,
+ 1111, 1112, 1112, 1113, 1113, 1114, 1114, 1115, 1115, 1119,
+ 1119, 1120, 1120, 1121, 1121, 1122, 1122, 1123, 1123, 1124,
+ 1124, 1125, 1125, 1126, 1127, 1132, 1133, 1133, 1133, 1133,
+ 1133, 1135, 1135, 1135, 1136, 1136, 1140, 1144, 1149, 1149,
+ 1151, 1152, 1157, 1163, 1164, 1165, 1166, 1167, 1171, 1172,
+ 1173, 1177, 1178, 1179, 1180, 1184, 1185, 1186, 1190, 1191,
+ 1192, 1193, 1194, 1198, 1199, 1200, 1203, 1204, 1205, 1206,
+ 1207, 1208, 1209, 1216, 1217, 1218, 1219, 1220, 1221, 1222,
+ 1223, 1224, 1227, 1228, 1233, 1234, 1235, 1236, 1237, 1238,
+ 1241, 1242, 1249, 1250, 1256, 1257, 1265, 1273, 1274, 1279,
+ 1280, 1281, 1286, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
+ 1302, 1306, 1310, 1317, 1322, 1330, 1348, 1366, 1371, 1381,
+ 1391, 1395, 1405, 1412, 1421, 1428, 1433, 1438, 1445, 1446,
+ 1453, 1460, 1468, 1474, 1486, 1514, 1530, 1557, 1585, 1611,
+ 1631, 1657, 1677, 1689, 1696, 1762, 1772, 1782, 1788, 1798,
+ 1804, 1814, 1819, 1824, 1837, 1849, 1871, 1879, 1885, 1896,
+ 1901, 1906, 1912, 1918, 1927, 1931, 1939, 1939, 1942, 1942,
+ 1945, 1957, 1978, 1983, 1991, 1992, 1996, 1996, 2000, 2000,
+ 2003, 2006, 2030, 2041, 2041, 2052, 2051, 2061, 2060, 2071,
+ 2111, 2114, 2120, 2130, 2134, 2139, 2141, 2146, 2151, 2160,
+ 2170, 2181, 2185, 2194, 2203, 2208, 2338, 2338, 2340, 2349,
+ 2349, 2351, 2356, 2368, 2372, 2377, 2381, 2385, 2389, 2393,