New parser c-files

This commit is contained in:
jriegel 2014-08-10 19:17:40 +02:00
parent 1b4190b047
commit 915ea8a609
2 changed files with 224 additions and 265 deletions

View File

@ -573,8 +573,8 @@ int yy_flex_debug = 0;
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "<stdin>"
#line 2 "<stdin>"
#line 1 "QuantityParser.l"
#line 2 "QuantityParser.l"
/* Lexer for the FreeCAD Units language */
/* (c) 2013 Juergen Riegel LGPL */
@ -768,7 +768,7 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
#line 31 "<stdin>"
#line 31 "QuantityParser.l"
#line 775 "QuantityLexer.c"
@ -852,488 +852,488 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
#line 33 "<stdin>"
#line 33 "QuantityParser.l"
{ BEGIN(C_COMMENT); }
YY_BREAK
case 2:
YY_RULE_SETUP
#line 34 "<stdin>"
#line 34 "QuantityParser.l"
{ BEGIN(INITIAL); }
YY_BREAK
case 3:
YY_RULE_SETUP
#line 35 "<stdin>"
#line 35 "QuantityParser.l"
{ ;}
YY_BREAK
case 4:
YY_RULE_SETUP
#line 38 "<stdin>"
#line 38 "QuantityParser.l"
;
YY_BREAK
case 5:
/* rule 5 can match eol */
YY_RULE_SETUP
#line 39 "<stdin>"
#line 39 "QuantityParser.l"
;
YY_BREAK
case 6:
YY_RULE_SETUP
#line 41 "<stdin>"
#line 41 "QuantityParser.l"
{ return *yytext; }
YY_BREAK
case 7:
YY_RULE_SETUP
#line 43 "<stdin>"
#line 43 "QuantityParser.l"
return MINUSSIGN;
YY_BREAK
case 8:
YY_RULE_SETUP
#line 44 "<stdin>"
#line 44 "QuantityParser.l"
return MINUSSIGN;
YY_BREAK
case 9:
YY_RULE_SETUP
#line 46 "<stdin>"
#line 46 "QuantityParser.l"
yylval = Quantity::NanoMetre; return UNIT; // nano meter
YY_BREAK
case 10:
YY_RULE_SETUP
#line 47 "<stdin>"
#line 47 "QuantityParser.l"
yylval = Quantity::MicroMetre; return UNIT; // micro meter
YY_BREAK
case 11:
YY_RULE_SETUP
#line 48 "<stdin>"
#line 48 "QuantityParser.l"
yylval = Quantity::MicroMetre; return UNIT; // micro meter (greek micro in UTF8)
YY_BREAK
case 12:
YY_RULE_SETUP
#line 49 "<stdin>"
#line 49 "QuantityParser.l"
yylval = Quantity::MilliMetre; return UNIT; // milli meter (internal standard length)
YY_BREAK
case 13:
YY_RULE_SETUP
#line 50 "<stdin>"
#line 50 "QuantityParser.l"
yylval = Quantity::CentiMetre; return UNIT; // centi meter
YY_BREAK
case 14:
YY_RULE_SETUP
#line 51 "<stdin>"
#line 51 "QuantityParser.l"
yylval = Quantity::DeciMetre; return UNIT; // deci meter
YY_BREAK
case 15:
YY_RULE_SETUP
#line 52 "<stdin>"
#line 52 "QuantityParser.l"
yylval = Quantity::Metre; return UNIT; // metre
YY_BREAK
case 16:
YY_RULE_SETUP
#line 53 "<stdin>"
#line 53 "QuantityParser.l"
yylval = Quantity::KiloMetre; return UNIT; // kilo meter
YY_BREAK
case 17:
YY_RULE_SETUP
#line 55 "<stdin>"
#line 55 "QuantityParser.l"
yylval = Quantity::Liter; return UNIT; // Liter dm^3
YY_BREAK
case 18:
YY_RULE_SETUP
#line 57 "<stdin>"
#line 57 "QuantityParser.l"
yylval = Quantity::MicroGram; return UNIT; // micro gram
YY_BREAK
case 19:
YY_RULE_SETUP
#line 58 "<stdin>"
#line 58 "QuantityParser.l"
yylval = Quantity::MicroGram; return UNIT; // micro gram
YY_BREAK
case 20:
YY_RULE_SETUP
#line 59 "<stdin>"
#line 59 "QuantityParser.l"
yylval = Quantity::MilliGram; return UNIT; // milli gram
YY_BREAK
case 21:
YY_RULE_SETUP
#line 60 "<stdin>"
#line 60 "QuantityParser.l"
yylval = Quantity::Gram; return UNIT; // gram
YY_BREAK
case 22:
YY_RULE_SETUP
#line 61 "<stdin>"
#line 61 "QuantityParser.l"
yylval = Quantity::KiloGram; return UNIT; // kilo gram (internal standard for mass)
YY_BREAK
case 23:
YY_RULE_SETUP
#line 62 "<stdin>"
#line 62 "QuantityParser.l"
yylval = Quantity::Ton; return UNIT; // Metric Tonne
YY_BREAK
case 24:
YY_RULE_SETUP
#line 64 "<stdin>"
#line 64 "QuantityParser.l"
yylval = Quantity::Second; return UNIT; // second (internal standard time)
YY_BREAK
case 25:
YY_RULE_SETUP
#line 65 "<stdin>"
#line 65 "QuantityParser.l"
yylval = Quantity::Minute; return UNIT; // minute
YY_BREAK
case 26:
YY_RULE_SETUP
#line 66 "<stdin>"
#line 66 "QuantityParser.l"
yylval = Quantity::Hour; return UNIT; // hour
YY_BREAK
case 27:
YY_RULE_SETUP
#line 68 "<stdin>"
#line 68 "QuantityParser.l"
yylval = Quantity::Ampere; return UNIT; // Ampere (internal standard electric current)
YY_BREAK
case 28:
YY_RULE_SETUP
#line 69 "<stdin>"
#line 69 "QuantityParser.l"
yylval = Quantity::MilliAmpere; return UNIT; // milli Ampere
YY_BREAK
case 29:
YY_RULE_SETUP
#line 70 "<stdin>"
#line 70 "QuantityParser.l"
yylval = Quantity::KiloAmpere; return UNIT; // kilo Ampere
YY_BREAK
case 30:
YY_RULE_SETUP
#line 71 "<stdin>"
#line 71 "QuantityParser.l"
yylval = Quantity::MegaAmpere; return UNIT; // Mega Ampere
YY_BREAK
case 31:
YY_RULE_SETUP
#line 73 "<stdin>"
#line 73 "QuantityParser.l"
yylval = Quantity::Kelvin; return UNIT; // Kelvin (internal standard thermodynamic temperature)
YY_BREAK
case 32:
YY_RULE_SETUP
#line 74 "<stdin>"
#line 74 "QuantityParser.l"
yylval = Quantity::MilliKelvin; return UNIT; // Kelvin
YY_BREAK
case 33:
YY_RULE_SETUP
#line 75 "<stdin>"
#line 75 "QuantityParser.l"
yylval = Quantity::MicroKelvin; return UNIT; // Kelvin
YY_BREAK
case 34:
YY_RULE_SETUP
#line 76 "<stdin>"
#line 76 "QuantityParser.l"
yylval = Quantity::MicroKelvin; return UNIT; // Kelvin
YY_BREAK
case 35:
YY_RULE_SETUP
#line 78 "<stdin>"
#line 78 "QuantityParser.l"
yylval = Quantity::Mole; return UNIT; // Mole (internal standard amount of substance)
YY_BREAK
case 36:
YY_RULE_SETUP
#line 80 "<stdin>"
#line 80 "QuantityParser.l"
yylval = Quantity::Candela; return UNIT; // Candela (internal standard luminous intensity)
YY_BREAK
case 37:
YY_RULE_SETUP
#line 82 "<stdin>"
#line 82 "QuantityParser.l"
yylval = Quantity::Inch; return UNIT; // inch
YY_BREAK
case 38:
YY_RULE_SETUP
#line 83 "<stdin>"
#line 83 "QuantityParser.l"
yylval = Quantity::Inch; return UNIT; // inch
YY_BREAK
case 39:
YY_RULE_SETUP
#line 84 "<stdin>"
#line 84 "QuantityParser.l"
yylval = Quantity::Foot; return UNIT; // foot
YY_BREAK
case 40:
YY_RULE_SETUP
#line 85 "<stdin>"
#line 85 "QuantityParser.l"
yylval = Quantity::Foot; return UNIT; // foot
YY_BREAK
case 41:
YY_RULE_SETUP
#line 86 "<stdin>"
#line 86 "QuantityParser.l"
yylval = Quantity::Thou; return UNIT; // thou (in/1000)
YY_BREAK
case 42:
YY_RULE_SETUP
#line 87 "<stdin>"
#line 87 "QuantityParser.l"
yylval = Quantity::Thou; return UNIT; // mil (the thou in US)
YY_BREAK
case 43:
YY_RULE_SETUP
#line 88 "<stdin>"
#line 88 "QuantityParser.l"
yylval = Quantity::Yard; return UNIT; // yard
YY_BREAK
case 44:
YY_RULE_SETUP
#line 89 "<stdin>"
#line 89 "QuantityParser.l"
yylval = Quantity::Mile; return UNIT; // mile
YY_BREAK
case 45:
YY_RULE_SETUP
#line 93 "<stdin>"
#line 93 "QuantityParser.l"
yylval = Quantity::Pound; return UNIT; // pound
YY_BREAK
case 46:
YY_RULE_SETUP
#line 94 "<stdin>"
#line 94 "QuantityParser.l"
yylval = Quantity::Pound; return UNIT; // pound
YY_BREAK
case 47:
YY_RULE_SETUP
#line 95 "<stdin>"
#line 95 "QuantityParser.l"
yylval = Quantity::Ounce; return UNIT; // ounce
YY_BREAK
case 48:
YY_RULE_SETUP
#line 96 "<stdin>"
#line 96 "QuantityParser.l"
yylval = Quantity::Stone; return UNIT; // Stone
YY_BREAK
case 49:
YY_RULE_SETUP
#line 97 "<stdin>"
#line 97 "QuantityParser.l"
yylval = Quantity::Hundredweights; return UNIT; // hundredweights
YY_BREAK
case 50:
YY_RULE_SETUP
#line 99 "<stdin>"
#line 99 "QuantityParser.l"
yylval = Quantity::PoundForce; return UNIT; // pound
YY_BREAK
case 51:
YY_RULE_SETUP
#line 101 "<stdin>"
#line 101 "QuantityParser.l"
yylval = Quantity::Newton; return UNIT; // Newton (kg*m/s^2)
YY_BREAK
case 52:
YY_RULE_SETUP
#line 102 "<stdin>"
#line 102 "QuantityParser.l"
yylval = Quantity::KiloNewton; return UNIT; // Newton
YY_BREAK
case 53:
YY_RULE_SETUP
#line 103 "<stdin>"
#line 103 "QuantityParser.l"
yylval = Quantity::MegaNewton; return UNIT; // Newton
YY_BREAK
case 54:
YY_RULE_SETUP
#line 104 "<stdin>"
#line 104 "QuantityParser.l"
yylval = Quantity::MilliNewton; return UNIT; // Newton
YY_BREAK
case 55:
YY_RULE_SETUP
#line 106 "<stdin>"
#line 106 "QuantityParser.l"
yylval = Quantity::Pascal; return UNIT; // Pascal (kg/m*s^2 or N/m^2)
YY_BREAK
case 56:
YY_RULE_SETUP
#line 107 "<stdin>"
#line 107 "QuantityParser.l"
yylval = Quantity::KiloPascal; return UNIT; // Pascal
YY_BREAK
case 57:
YY_RULE_SETUP
#line 108 "<stdin>"
#line 108 "QuantityParser.l"
yylval = Quantity::MegaPascal; return UNIT; // Pascal
YY_BREAK
case 58:
YY_RULE_SETUP
#line 109 "<stdin>"
#line 109 "QuantityParser.l"
yylval = Quantity::GigaPascal; return UNIT; // Pascal
YY_BREAK
case 59:
YY_RULE_SETUP
#line 111 "<stdin>"
#line 111 "QuantityParser.l"
yylval = Quantity::Torr; return UNIT; // portion of Pascal ( 101325/760 )
YY_BREAK
case 60:
YY_RULE_SETUP
#line 112 "<stdin>"
#line 112 "QuantityParser.l"
yylval = Quantity::mTorr; return UNIT; //
YY_BREAK
case 61:
YY_RULE_SETUP
#line 113 "<stdin>"
#line 113 "QuantityParser.l"
yylval = Quantity::yTorr; return UNIT; //
YY_BREAK
case 62:
YY_RULE_SETUP
#line 114 "<stdin>"
#line 114 "QuantityParser.l"
yylval = Quantity::yTorr; return UNIT; //
YY_BREAK
case 63:
YY_RULE_SETUP
#line 116 "<stdin>"
#line 116 "QuantityParser.l"
yylval = Quantity::PSI; return UNIT; // pounds/in^2
YY_BREAK
case 64:
YY_RULE_SETUP
#line 117 "<stdin>"
#line 117 "QuantityParser.l"
yylval = Quantity::KSI; return UNIT; // 1000 x pounds/in^2
YY_BREAK
case 65:
YY_RULE_SETUP
#line 119 "<stdin>"
#line 119 "QuantityParser.l"
yylval = Quantity::Watt; return UNIT; // Watt (kg*m^2/s^3)
YY_BREAK
case 66:
YY_RULE_SETUP
#line 120 "<stdin>"
#line 120 "QuantityParser.l"
yylval = Quantity::VoltAmpere; return UNIT; // VoltAmpere (kg*m^2/s^3)
YY_BREAK
case 67:
YY_RULE_SETUP
#line 122 "<stdin>"
#line 122 "QuantityParser.l"
yylval = Quantity::Joule; return UNIT; // Joule (kg*m^2/s^2)
YY_BREAK
case 68:
YY_RULE_SETUP
#line 123 "<stdin>"
#line 123 "QuantityParser.l"
yylval = Quantity::NewtonMeter; return UNIT; // N*m = Joule
YY_BREAK
case 69:
YY_RULE_SETUP
#line 124 "<stdin>"
#line 124 "QuantityParser.l"
yylval = Quantity::VoltAmpereSecond; return UNIT; // V*A*s = Joule
YY_BREAK
case 70:
YY_RULE_SETUP
#line 125 "<stdin>"
#line 125 "QuantityParser.l"
yylval = Quantity::WattSecond; return UNIT; //
YY_BREAK
case 71:
YY_RULE_SETUP
#line 126 "<stdin>"
#line 126 "QuantityParser.l"
yylval = Quantity::WattSecond; return UNIT; // W*s = Joule
YY_BREAK
case 72:
YY_RULE_SETUP
#line 128 "<stdin>"
#line 128 "QuantityParser.l"
yylval = Quantity::Degree; return UNIT; // degree (internal standard angle)
YY_BREAK
case 73:
YY_RULE_SETUP
#line 129 "<stdin>"
#line 129 "QuantityParser.l"
yylval = Quantity::Degree; return UNIT; // degree (internal standard angle)
YY_BREAK
case 74:
YY_RULE_SETUP
#line 130 "<stdin>"
#line 130 "QuantityParser.l"
yylval = Quantity::Radian; return UNIT; // radian
YY_BREAK
case 75:
YY_RULE_SETUP
#line 131 "<stdin>"
#line 131 "QuantityParser.l"
yylval = Quantity::Gon; return UNIT; // gon
YY_BREAK
case 76:
YY_RULE_SETUP
#line 133 "<stdin>"
#line 133 "QuantityParser.l"
{ yylval = num_change(yytext,'.',',');return NUM; }
YY_BREAK
case 77:
YY_RULE_SETUP
#line 134 "<stdin>"
#line 134 "QuantityParser.l"
{ yylval = num_change(yytext,',','.');return NUM; }
YY_BREAK
case 78:
YY_RULE_SETUP
#line 137 "<stdin>"
#line 137 "QuantityParser.l"
{yylval = M_PI ; return NUM;} // constant pi
YY_BREAK
case 79:
YY_RULE_SETUP
#line 138 "<stdin>"
#line 138 "QuantityParser.l"
{yylval = M_E ; return NUM;} // constant e
YY_BREAK
case 80:
YY_RULE_SETUP
#line 140 "<stdin>"
#line 140 "QuantityParser.l"
return ACOS;
YY_BREAK
case 81:
YY_RULE_SETUP
#line 141 "<stdin>"
#line 141 "QuantityParser.l"
return ASIN;
YY_BREAK
case 82:
YY_RULE_SETUP
#line 142 "<stdin>"
#line 142 "QuantityParser.l"
return ATAN;
YY_BREAK
case 83:
YY_RULE_SETUP
#line 143 "<stdin>"
#line 143 "QuantityParser.l"
return ATAN2;
YY_BREAK
case 84:
YY_RULE_SETUP
#line 144 "<stdin>"
#line 144 "QuantityParser.l"
return COS;
YY_BREAK
case 85:
YY_RULE_SETUP
#line 145 "<stdin>"
#line 145 "QuantityParser.l"
return EXP;
YY_BREAK
case 86:
YY_RULE_SETUP
#line 146 "<stdin>"
#line 146 "QuantityParser.l"
return ABS;
YY_BREAK
case 87:
YY_RULE_SETUP
#line 147 "<stdin>"
#line 147 "QuantityParser.l"
return MOD;
YY_BREAK
case 88:
YY_RULE_SETUP
#line 148 "<stdin>"
#line 148 "QuantityParser.l"
return LOG;
YY_BREAK
case 89:
YY_RULE_SETUP
#line 149 "<stdin>"
#line 149 "QuantityParser.l"
return LOG10;
YY_BREAK
case 90:
YY_RULE_SETUP
#line 150 "<stdin>"
#line 150 "QuantityParser.l"
return POW;
YY_BREAK
case 91:
YY_RULE_SETUP
#line 151 "<stdin>"
#line 151 "QuantityParser.l"
return SIN;
YY_BREAK
case 92:
YY_RULE_SETUP
#line 152 "<stdin>"
#line 152 "QuantityParser.l"
return SINH;
YY_BREAK
case 93:
YY_RULE_SETUP
#line 153 "<stdin>"
#line 153 "QuantityParser.l"
return TAN;
YY_BREAK
case 94:
YY_RULE_SETUP
#line 154 "<stdin>"
#line 154 "QuantityParser.l"
return TANH;
YY_BREAK
case 95:
YY_RULE_SETUP
#line 155 "<stdin>"
#line 155 "QuantityParser.l"
return SQRT;
YY_BREAK
case 96:
YY_RULE_SETUP
#line 157 "<stdin>"
#line 157 "QuantityParser.l"
return *yytext;
YY_BREAK
case 97:
YY_RULE_SETUP
#line 158 "<stdin>"
#line 158 "QuantityParser.l"
ECHO;
YY_BREAK
#line 1340 "QuantityLexer.c"
@ -2295,4 +2295,4 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
#line 158 "<stdin>"
#line 158 "QuantityParser.l"

View File

@ -389,18 +389,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 45
#define YYFINAL 39
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 279
#define YYLAST 200
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 30
#define YYNTOKENS 29
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 5
/* YYNRULES -- Number of rules. */
#define YYNRULES 36
#define YYNRULES 33
/* YYNRULES -- Number of states. */
#define YYNSTATES 106
#define YYNSTATES 88
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@ -416,7 +416,7 @@ static const yytype_uint8 yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
27, 28, 23, 22, 29, 2, 2, 24, 2, 2,
27, 28, 23, 22, 2, 2, 2, 24, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@ -448,29 +448,27 @@ static const yytype_uint8 yytranslate[] =
static const yytype_uint8 yyprhs[] =
{
0, 0, 3, 4, 6, 8, 10, 13, 15, 19,
23, 27, 31, 34, 38, 42, 47, 52, 57, 64,
69, 74, 81, 86, 91, 98, 103, 108, 113, 118,
123, 128, 130, 134, 138, 142, 146
23, 27, 31, 34, 38, 42, 47, 52, 57, 62,
67, 72, 77, 82, 87, 92, 97, 102, 107, 109,
113, 117, 121, 125
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
31, 0, -1, -1, 32, -1, 33, -1, 34, -1,
34, 34, -1, 4, -1, 32, 22, 32, -1, 32,
5, 32, -1, 32, 23, 32, -1, 32, 24, 32,
-1, 5, 32, -1, 32, 26, 32, -1, 27, 32,
28, -1, 6, 27, 32, 28, -1, 7, 27, 32,
28, -1, 8, 27, 32, 28, -1, 9, 27, 32,
29, 32, 28, -1, 12, 27, 32, 28, -1, 11,
27, 32, 28, -1, 13, 27, 32, 29, 32, 28,
-1, 14, 27, 32, 28, -1, 15, 27, 32, 28,
-1, 16, 27, 32, 29, 32, 28, -1, 17, 27,
32, 28, -1, 18, 27, 32, 28, -1, 19, 27,
32, 28, -1, 20, 27, 32, 28, -1, 21, 27,
32, 28, -1, 10, 27, 32, 28, -1, 3, -1,
33, 23, 33, -1, 33, 24, 33, -1, 33, 26,
32, -1, 27, 33, 28, -1, 32, 33, -1
30, 0, -1, -1, 31, -1, 32, -1, 33, -1,
33, 33, -1, 4, -1, 31, 22, 31, -1, 31,
5, 31, -1, 31, 23, 31, -1, 31, 24, 31,
-1, 5, 31, -1, 31, 26, 31, -1, 27, 31,
28, -1, 6, 27, 31, 28, -1, 7, 27, 31,
28, -1, 8, 27, 31, 28, -1, 12, 27, 31,
28, -1, 11, 27, 31, 28, -1, 14, 27, 31,
28, -1, 15, 27, 31, 28, -1, 17, 27, 31,
28, -1, 18, 27, 31, 28, -1, 19, 27, 31,
28, -1, 20, 27, 31, 28, -1, 21, 27, 31,
28, -1, 10, 27, 31, 28, -1, 3, -1, 32,
23, 32, -1, 32, 24, 32, -1, 32, 26, 31,
-1, 27, 32, 28, -1, 31, 32, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@ -478,8 +476,8 @@ static const yytype_uint8 yyrline[] =
{
0, 33, 33, 34, 35, 36, 37, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 65, 66, 67, 68, 69, 71
52, 53, 54, 55, 56, 57, 58, 59, 62, 63,
64, 65, 66, 68
};
#endif
@ -491,8 +489,7 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "UNIT", "NUM", "MINUSSIGN", "ACOS",
"ASIN", "ATAN", "ATAN2", "COS", "EXP", "ABS", "MOD", "LOG", "LOG10",
"POW", "SIN", "SINH", "TAN", "TANH", "SQRT", "'+'", "'*'", "'/'", "NEG",
"'^'", "'('", "')'", "','", "$accept", "input", "num", "unit",
"quantity", YY_NULL
"'^'", "'('", "')'", "$accept", "input", "num", "unit", "quantity", YY_NULL
};
#endif
@ -503,26 +500,26 @@ static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 43, 42, 47, 277, 94, 40, 41, 44
275, 276, 43, 42, 47, 277, 94, 40, 41
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
0, 30, 31, 31, 31, 31, 31, 32, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 33, 33, 33, 33, 33, 34
0, 29, 30, 30, 30, 30, 30, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 32, 32,
32, 32, 32, 33
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 0, 1, 1, 1, 2, 1, 3, 3,
3, 3, 2, 3, 3, 4, 4, 4, 6, 4,
4, 6, 4, 4, 6, 4, 4, 4, 4, 4,
4, 1, 3, 3, 3, 3, 2
3, 3, 2, 3, 3, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 1, 3,
3, 3, 3, 2
};
/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@ -530,47 +527,43 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
2, 31, 7, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 3, 4, 5, 0, 12, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 36, 0, 0, 0, 0, 6, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 14, 35, 9, 8, 10, 11,
13, 32, 33, 34, 15, 16, 17, 0, 30, 20,
19, 0, 22, 23, 0, 25, 26, 27, 28, 29,
0, 0, 0, 18, 21, 24
2, 28, 7, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
4, 5, 0, 12, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 14, 32, 9, 8, 10,
11, 13, 29, 30, 31, 15, 16, 17, 27, 19,
18, 20, 21, 22, 23, 24, 25, 26
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
-1, 21, 43, 44, 24
-1, 18, 37, 38, 21
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -26
#define YYPACT_NINF -19
static const yytype_int16 yypact[] =
{
58, -26, -26, 117, -25, -13, -10, 16, 17, 26,
29, 32, 54, 56, 57, 59, 62, 63, 65, 66,
58, 9, 77, -11, 117, 117, -3, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
117, 117, 117, 134, -18, -26, 117, 117, 117, 117,
117, 18, -11, 18, 18, 117, 77, -26, 141, 148,
156, -4, 163, 170, 178, 83, 185, 192, 91, 200,
207, 214, 222, 229, -26, -26, 28, 28, -3, -3,
-3, 69, 69, -15, -26, -26, -26, 117, -26, -26,
-26, 117, -26, -26, 117, -26, -26, -26, -26, -26,
236, 244, 251, -26, -26, -26
49, -19, -19, 67, -15, -9, 13, 14, 22, 31,
35, 38, 56, 63, 64, 73, 78, 49, 10, -2,
-10, 67, 67, 76, 67, 67, 67, 67, 67, 67,
67, 67, 67, 67, 67, 67, 67, 75, -17, -19,
67, 67, 67, 67, 67, 12, -10, 12, 12, 67,
-2, -19, 84, 91, 99, 106, 113, 121, 128, 135,
143, 150, 157, 165, 172, -19, -19, 69, 69, 76,
76, 76, 83, 83, -18, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
-26, -26, 0, 4, -8
-19, -19, 2, 0, -4
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@ -579,89 +572,73 @@ static const yytype_int8 yypgoto[] =
#define YYTABLE_NINF -1
static const yytype_uint8 yytable[] =
{
22, 46, 27, 26, 23, 53, 54, 47, 55, 45,
75, 50, 53, 54, 28, 55, 57, 29, 47, 48,
49, 1, 50, 50, 56, 87, 52, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 30, 31, 51, 76, 77, 78, 79,
80, 48, 49, 32, 50, 83, 33, 81, 82, 34,
52, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1, 35, 46, 36, 37, 20, 38, 100, 46, 39,
40, 101, 41, 42, 102, 55, 46, 0, 0, 47,
48, 49, 0, 50, 51, 47, 48, 49, 0, 50,
0, 0, 91, 47, 48, 49, 0, 50, 0, 0,
94, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 46,
0, 0, 0, 0, 25, 0, 46, 0, 0, 0,
0, 0, 0, 46, 0, 0, 47, 48, 49, 0,
50, 46, 74, 47, 48, 49, 0, 50, 46, 84,
47, 48, 49, 0, 50, 46, 85, 0, 47, 48,
49, 0, 50, 46, 86, 47, 48, 49, 0, 50,
46, 88, 47, 48, 49, 0, 50, 46, 89, 0,
47, 48, 49, 0, 50, 46, 90, 47, 48, 49,
0, 50, 46, 92, 47, 48, 49, 0, 50, 46,
93, 0, 47, 48, 49, 0, 50, 46, 95, 47,
48, 49, 0, 50, 46, 96, 47, 48, 49, 0,
50, 46, 97, 0, 47, 48, 49, 0, 50, 46,
98, 47, 48, 49, 0, 50, 46, 99, 47, 48,
49, 0, 50, 0, 103, 0, 47, 48, 49, 0,
50, 0, 104, 47, 48, 49, 0, 50, 0, 105
20, 1, 19, 40, 41, 23, 47, 48, 44, 49,
39, 66, 24, 47, 48, 1, 49, 51, 25, 46,
41, 42, 43, 50, 44, 45, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 45,
26, 27, 67, 68, 69, 70, 71, 72, 73, 28,
46, 74, 1, 2, 3, 4, 5, 6, 29, 7,
8, 9, 30, 10, 11, 31, 12, 13, 14, 15,
16, 2, 3, 4, 5, 6, 17, 7, 8, 9,
40, 10, 11, 32, 12, 13, 14, 15, 16, 40,
33, 34, 42, 43, 22, 44, 40, 41, 42, 43,
35, 44, 44, 65, 40, 36, 41, 42, 43, 49,
44, 40, 75, 41, 42, 43, 0, 44, 40, 76,
0, 41, 42, 43, 0, 44, 40, 77, 41, 42,
43, 0, 44, 40, 78, 41, 42, 43, 0, 44,
40, 79, 0, 41, 42, 43, 0, 44, 40, 80,
41, 42, 43, 0, 44, 40, 81, 41, 42, 43,
0, 44, 40, 82, 0, 41, 42, 43, 0, 44,
40, 83, 41, 42, 43, 0, 44, 40, 84, 41,
42, 43, 0, 44, 0, 85, 0, 41, 42, 43,
0, 44, 0, 86, 41, 42, 43, 0, 44, 0,
87
};
#define yypact_value_is_default(Yystate) \
(!!((Yystate) == (-26)))
(!!((Yystate) == (-19)))
#define yytable_value_is_error(Yytable_value) \
YYID (0)
static const yytype_int8 yycheck[] =
{
0, 5, 27, 3, 0, 23, 24, 22, 26, 0,
28, 26, 23, 24, 27, 26, 24, 27, 22, 23,
24, 3, 26, 26, 24, 29, 22, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 27, 27, 27, 46, 47, 48, 49,
50, 23, 24, 27, 26, 55, 27, 53, 54, 27,
56, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3, 27, 5, 27, 27, 27, 27, 87, 5, 27,
27, 91, 27, 27, 94, 26, 5, -1, -1, 22,
23, 24, -1, 26, 27, 22, 23, 24, -1, 26,
-1, -1, 29, 22, 23, 24, -1, 26, -1, -1,
29, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 5,
-1, -1, -1, -1, 27, -1, 5, -1, -1, -1,
-1, -1, -1, 5, -1, -1, 22, 23, 24, -1,
0, 3, 0, 5, 22, 3, 23, 24, 26, 26,
0, 28, 27, 23, 24, 3, 26, 21, 27, 19,
22, 23, 24, 21, 26, 27, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 27,
27, 27, 40, 41, 42, 43, 44, 47, 48, 27,
50, 49, 3, 4, 5, 6, 7, 8, 27, 10,
11, 12, 27, 14, 15, 27, 17, 18, 19, 20,
21, 4, 5, 6, 7, 8, 27, 10, 11, 12,
5, 14, 15, 27, 17, 18, 19, 20, 21, 5,
27, 27, 23, 24, 27, 26, 5, 22, 23, 24,
27, 26, 26, 28, 5, 27, 22, 23, 24, 26,
26, 5, 28, 22, 23, 24, -1, 26, 5, 28,
22, 23, 24, -1, 26, 5, 28, -1, 22, 23,
-1, 22, 23, 24, -1, 26, 5, 28, 22, 23,
24, -1, 26, 5, 28, 22, 23, 24, -1, 26,
5, 28, 22, 23, 24, -1, 26, 5, 28, -1,
5, 28, -1, 22, 23, 24, -1, 26, 5, 28,
22, 23, 24, -1, 26, 5, 28, 22, 23, 24,
-1, 26, 5, 28, 22, 23, 24, -1, 26, 5,
28, -1, 22, 23, 24, -1, 26, 5, 28, 22,
23, 24, -1, 26, 5, 28, 22, 23, 24, -1,
26, 5, 28, -1, 22, 23, 24, -1, 26, 5,
28, 22, 23, 24, -1, 26, 5, 28, 22, 23,
24, -1, 26, -1, 28, -1, 22, 23, 24, -1,
26, -1, 28, 22, 23, 24, -1, 26, -1, 28
-1, 26, 5, 28, -1, 22, 23, 24, -1, 26,
5, 28, 22, 23, 24, -1, 26, 5, 28, 22,
23, 24, -1, 26, -1, 28, -1, 22, 23, 24,
-1, 26, -1, 28, 22, 23, 24, -1, 26, -1,
28
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
27, 31, 32, 33, 34, 27, 32, 27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
27, 27, 27, 32, 33, 0, 5, 22, 23, 24,
26, 27, 33, 23, 24, 26, 32, 34, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 28, 28, 32, 32, 32, 32,
32, 33, 33, 32, 28, 28, 28, 29, 28, 28,
28, 29, 28, 28, 29, 28, 28, 28, 28, 28,
32, 32, 32, 28, 28, 28
0, 3, 4, 5, 6, 7, 8, 10, 11, 12,
14, 15, 17, 18, 19, 20, 21, 27, 30, 31,
32, 33, 27, 31, 27, 27, 27, 27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 31, 32, 0,
5, 22, 23, 24, 26, 27, 32, 23, 24, 26,
31, 33, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 28, 28, 31, 31, 31,
31, 31, 32, 32, 31, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28
};
#define yyerrok (yyerrstatus = 0)
@ -1551,120 +1528,102 @@ yyreduce:
case 18:
/* Line 1787 of yacc.c */
#line 50 "QuantityParser.y"
{ (yyval) = atan2((yyvsp[(3) - (6)]).getValue(),(yyvsp[(5) - (6)]).getValue());}
{ (yyval) = fabs((yyvsp[(3) - (4)]).getValue()); }
break;
case 19:
/* Line 1787 of yacc.c */
#line 51 "QuantityParser.y"
{ (yyval) = fabs((yyvsp[(3) - (4)]).getValue()); }
{ (yyval) = exp((yyvsp[(3) - (4)]).getValue()); }
break;
case 20:
/* Line 1787 of yacc.c */
#line 52 "QuantityParser.y"
{ (yyval) = exp((yyvsp[(3) - (4)]).getValue()); }
{ (yyval) = log((yyvsp[(3) - (4)]).getValue()); }
break;
case 21:
/* Line 1787 of yacc.c */
#line 53 "QuantityParser.y"
{ (yyval) = fmod((yyvsp[(3) - (6)]).getValue(),(yyvsp[(5) - (6)]).getValue()); }
{ (yyval) = log10((yyvsp[(3) - (4)]).getValue()); }
break;
case 22:
/* Line 1787 of yacc.c */
#line 54 "QuantityParser.y"
{ (yyval) = log((yyvsp[(3) - (4)]).getValue()); }
{ (yyval) = sin((yyvsp[(3) - (4)]).getValue()); }
break;
case 23:
/* Line 1787 of yacc.c */
#line 55 "QuantityParser.y"
{ (yyval) = log10((yyvsp[(3) - (4)]).getValue()); }
{ (yyval) = sinh((yyvsp[(3) - (4)]).getValue()); }
break;
case 24:
/* Line 1787 of yacc.c */
#line 56 "QuantityParser.y"
{ (yyval) = pow((yyvsp[(3) - (6)]).getValue(),(yyvsp[(5) - (6)]).getValue()); }
{ (yyval) = tan((yyvsp[(3) - (4)]).getValue()); }
break;
case 25:
/* Line 1787 of yacc.c */
#line 57 "QuantityParser.y"
{ (yyval) = sin((yyvsp[(3) - (4)]).getValue()); }
{ (yyval) = tanh((yyvsp[(3) - (4)]).getValue()); }
break;
case 26:
/* Line 1787 of yacc.c */
#line 58 "QuantityParser.y"
{ (yyval) = sinh((yyvsp[(3) - (4)]).getValue()); }
{ (yyval) = sqrt((yyvsp[(3) - (4)]).getValue()); }
break;
case 27:
/* Line 1787 of yacc.c */
#line 59 "QuantityParser.y"
{ (yyval) = tan((yyvsp[(3) - (4)]).getValue()); }
{ (yyval) = cos((yyvsp[(3) - (4)]).getValue()); }
break;
case 28:
/* Line 1787 of yacc.c */
#line 60 "QuantityParser.y"
{ (yyval) = tanh((yyvsp[(3) - (4)]).getValue()); }
#line 62 "QuantityParser.y"
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
case 29:
/* Line 1787 of yacc.c */
#line 61 "QuantityParser.y"
{ (yyval) = tanh((yyvsp[(3) - (4)]).getValue()); }
#line 63 "QuantityParser.y"
{ (yyval) = (yyvsp[(1) - (3)]) * (yyvsp[(3) - (3)]); }
break;
case 30:
/* Line 1787 of yacc.c */
#line 62 "QuantityParser.y"
{ (yyval) = cos((yyvsp[(3) - (4)]).getValue()); }
#line 64 "QuantityParser.y"
{ (yyval) = (yyvsp[(1) - (3)]) / (yyvsp[(3) - (3)]); }
break;
case 31:
/* Line 1787 of yacc.c */
#line 65 "QuantityParser.y"
{ (yyval) = (yyvsp[(1) - (1)]); }
{ (yyval) = (yyvsp[(1) - (3)]).pow ((yyvsp[(3) - (3)])); }
break;
case 32:
/* Line 1787 of yacc.c */
#line 66 "QuantityParser.y"
{ (yyval) = (yyvsp[(1) - (3)]) * (yyvsp[(3) - (3)]); }
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
case 33:
/* Line 1787 of yacc.c */
#line 67 "QuantityParser.y"
{ (yyval) = (yyvsp[(1) - (3)]) / (yyvsp[(3) - (3)]); }
break;
case 34:
/* Line 1787 of yacc.c */
#line 68 "QuantityParser.y"
{ (yyval) = (yyvsp[(1) - (3)]).pow ((yyvsp[(3) - (3)])); }
break;
case 35:
/* Line 1787 of yacc.c */
#line 69 "QuantityParser.y"
{ (yyval) = (yyvsp[(2) - (3)]); }
break;
case 36:
/* Line 1787 of yacc.c */
#line 71 "QuantityParser.y"
{ (yyval) = (yyvsp[(1) - (2)])*(yyvsp[(2) - (2)]); }
break;
/* Line 1787 of yacc.c */
#line 1668 "QuantityParser.c"
#line 1627 "QuantityParser.c"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@ -1896,5 +1855,5 @@ yyreturn:
/* Line 2050 of yacc.c */
#line 75 "QuantityParser.y"
#line 72 "QuantityParser.y"