Base: Make Quantity parser accept 1/[unit] as [unit]^-1
This commit is contained in:
@@ -183,7 +183,7 @@ extern FILE *yyin, *yyout;
|
||||
do \
|
||||
{ \
|
||||
/* Undo effects of setting up yytext. */ \
|
||||
int yyless_macro_arg = (n); \
|
||||
yy_size_t yyless_macro_arg = (n); \
|
||||
YY_LESS_LINENO(yyless_macro_arg);\
|
||||
*yy_cp = (yy_hold_char); \
|
||||
YY_RESTORE_YY_MORE_OFFSET \
|
||||
@@ -211,7 +211,7 @@ struct yy_buffer_state
|
||||
/* Number of characters read into yy_ch_buf, not including EOB
|
||||
* characters.
|
||||
*/
|
||||
int yy_n_chars;
|
||||
yy_size_t yy_n_chars;
|
||||
|
||||
/* Whether we "own" the buffer - i.e., we know we created it,
|
||||
* and can realloc() it to grow it, and should free() it to
|
||||
@@ -281,7 +281,7 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
|
||||
|
||||
/* yy_hold_char holds the character lost when yytext is formed. */
|
||||
static char yy_hold_char;
|
||||
static int yy_n_chars; /* number of characters read into yy_ch_buf */
|
||||
static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
|
||||
yy_size_t yyleng;
|
||||
|
||||
/* Points to current character in buffer. */
|
||||
@@ -377,8 +377,8 @@ static void yy_fatal_error (yyconst char msg[] );
|
||||
*yy_cp = '\0'; \
|
||||
(yy_c_buf_p) = yy_cp;
|
||||
|
||||
#define YY_NUM_RULES 99
|
||||
#define YY_END_OF_BUFFER 100
|
||||
#define YY_NUM_RULES 100
|
||||
#define YY_END_OF_BUFFER 101
|
||||
/* This struct is not used in this scanner,
|
||||
but its presence is necessary. */
|
||||
struct yy_trans_info
|
||||
@@ -386,28 +386,28 @@ struct yy_trans_info
|
||||
flex_int32_t yy_verify;
|
||||
flex_int32_t yy_nxt;
|
||||
};
|
||||
static yyconst flex_int16_t yy_accept[189] =
|
||||
static yyconst flex_int16_t yy_accept[190] =
|
||||
{ 0,
|
||||
0, 0, 0, 0, 100, 98, 4, 5, 38, 40,
|
||||
6, 98, 7, 98, 76, 27, 98, 98, 67, 31,
|
||||
98, 51, 98, 98, 98, 65, 1, 98, 98, 98,
|
||||
81, 98, 21, 26, 98, 98, 17, 15, 98, 98,
|
||||
98, 98, 24, 23, 98, 98, 98, 98, 3, 99,
|
||||
2, 5, 79, 77, 78, 76, 76, 0, 70, 0,
|
||||
30, 53, 0, 68, 55, 0, 66, 71, 0, 0,
|
||||
0, 0, 36, 13, 0, 0, 0, 14, 0, 39,
|
||||
0, 37, 29, 52, 0, 22, 16, 0, 45, 0,
|
||||
28, 32, 54, 0, 20, 44, 12, 0, 9, 47,
|
||||
0, 0, 0, 0, 101, 99, 4, 5, 38, 40,
|
||||
6, 99, 7, 99, 77, 76, 27, 99, 99, 67,
|
||||
31, 99, 51, 99, 99, 99, 65, 1, 99, 99,
|
||||
99, 82, 99, 21, 26, 99, 99, 17, 15, 99,
|
||||
99, 99, 99, 24, 23, 99, 99, 99, 99, 3,
|
||||
100, 2, 5, 80, 78, 79, 77, 77, 0, 70,
|
||||
0, 30, 53, 0, 68, 55, 0, 66, 71, 0,
|
||||
0, 0, 0, 36, 13, 0, 0, 0, 14, 0,
|
||||
39, 0, 37, 29, 52, 0, 22, 16, 0, 45,
|
||||
0, 28, 32, 54, 0, 20, 44, 12, 0, 9,
|
||||
|
||||
80, 0, 0, 0, 0, 0, 48, 0, 0, 34,
|
||||
0, 18, 10, 43, 72, 0, 0, 0, 0, 78,
|
||||
0, 76, 0, 0, 76, 58, 57, 0, 69, 88,
|
||||
0, 0, 0, 86, 49, 73, 87, 75, 56, 64,
|
||||
50, 46, 90, 0, 42, 25, 89, 35, 92, 63,
|
||||
74, 93, 0, 95, 0, 0, 33, 0, 19, 11,
|
||||
8, 0, 79, 0, 77, 0, 78, 0, 76, 59,
|
||||
82, 83, 84, 0, 0, 94, 97, 96, 41, 0,
|
||||
0, 85, 91, 60, 61, 0, 62, 0
|
||||
47, 81, 0, 0, 0, 0, 0, 48, 0, 0,
|
||||
34, 0, 18, 10, 43, 72, 0, 0, 0, 0,
|
||||
79, 0, 77, 0, 0, 77, 58, 57, 0, 69,
|
||||
89, 0, 0, 0, 87, 49, 73, 88, 75, 56,
|
||||
64, 50, 46, 91, 0, 42, 25, 90, 35, 93,
|
||||
63, 74, 94, 0, 96, 0, 0, 33, 0, 19,
|
||||
11, 8, 0, 80, 0, 78, 0, 79, 0, 77,
|
||||
59, 83, 84, 85, 0, 0, 95, 98, 97, 41,
|
||||
0, 0, 86, 92, 60, 61, 0, 62, 0
|
||||
} ;
|
||||
|
||||
static yyconst YY_CHAR yy_ec[256] =
|
||||
@@ -452,99 +452,100 @@ static yyconst YY_CHAR yy_meta[59] =
|
||||
1, 1, 1, 1, 1, 1, 1, 1
|
||||
} ;
|
||||
|
||||
static yyconst flex_uint16_t yy_base[190] =
|
||||
static yyconst flex_uint16_t yy_base[191] =
|
||||
{ 0,
|
||||
0, 0, 56, 57, 309, 310, 310, 305, 310, 310,
|
||||
310, 50, 310, 54, 61, 310, 282, 283, 310, 310,
|
||||
64, 265, 275, 261, 287, 255, 310, 46, 48, 49,
|
||||
250, 252, 256, 310, 256, 76, 53, 86, 256, 243,
|
||||
63, 265, 70, 67, 95, 261, 57, 239, 310, 310,
|
||||
310, 288, 120, 127, 134, 144, 158, 167, 310, 261,
|
||||
310, 310, 260, 310, 310, 243, 241, 310, 240, 243,
|
||||
247, 254, 310, 310, 236, 234, 245, 310, 236, 310,
|
||||
237, 310, 310, 310, 248, 310, 310, 239, 84, 240,
|
||||
310, 310, 310, 232, 310, 63, 310, 88, 310, 310,
|
||||
0, 0, 56, 57, 317, 318, 318, 313, 318, 318,
|
||||
318, 50, 318, 54, 61, 69, 318, 290, 291, 318,
|
||||
318, 73, 273, 283, 269, 295, 263, 318, 59, 59,
|
||||
60, 258, 260, 264, 318, 264, 88, 62, 98, 264,
|
||||
251, 70, 273, 77, 90, 107, 269, 42, 247, 318,
|
||||
318, 318, 296, 132, 139, 146, 156, 170, 179, 318,
|
||||
269, 318, 318, 268, 318, 318, 251, 249, 318, 248,
|
||||
251, 255, 262, 318, 318, 244, 242, 253, 318, 244,
|
||||
318, 245, 318, 318, 318, 256, 318, 318, 247, 36,
|
||||
248, 318, 318, 318, 207, 318, 76, 318, 93, 318,
|
||||
|
||||
310, 224, 235, 239, 196, 191, 310, 186, 181, 310,
|
||||
179, 310, 310, 310, 310, 162, 166, 176, 187, 192,
|
||||
201, 205, 217, 151, 221, 310, 310, 166, 310, 310,
|
||||
161, 154, 152, 310, 310, 310, 310, 310, 310, 310,
|
||||
310, 310, 180, 139, 310, 310, 310, 310, 310, 310,
|
||||
310, 137, 112, 118, 104, 105, 310, 107, 310, 310,
|
||||
310, 228, 232, 236, 240, 244, 248, 252, 256, 310,
|
||||
310, 310, 130, 131, 91, 310, 310, 310, 310, 84,
|
||||
80, 310, 310, 310, 310, 36, 310, 310, 69
|
||||
318, 318, 199, 202, 203, 192, 187, 318, 182, 177,
|
||||
318, 165, 318, 318, 318, 318, 174, 151, 188, 199,
|
||||
204, 213, 217, 229, 163, 233, 318, 318, 159, 318,
|
||||
318, 150, 144, 130, 318, 318, 318, 318, 318, 318,
|
||||
318, 318, 318, 154, 119, 318, 318, 318, 318, 318,
|
||||
318, 318, 126, 114, 119, 106, 103, 318, 99, 318,
|
||||
318, 318, 240, 244, 248, 252, 256, 260, 264, 268,
|
||||
318, 318, 318, 126, 126, 91, 318, 318, 318, 318,
|
||||
85, 84, 318, 318, 318, 318, 64, 318, 318, 86
|
||||
} ;
|
||||
|
||||
static yyconst flex_int16_t yy_def[190] =
|
||||
static yyconst flex_int16_t yy_def[191] =
|
||||
{ 0,
|
||||
188, 1, 189, 189, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
189, 1, 190, 190, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 0, 188
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 0, 189
|
||||
} ;
|
||||
|
||||
static yyconst flex_uint16_t yy_nxt[369] =
|
||||
static yyconst flex_uint16_t yy_nxt[377] =
|
||||
{ 0,
|
||||
6, 7, 8, 9, 10, 11, 11, 12, 13, 14,
|
||||
15, 15, 15, 15, 16, 17, 6, 18, 19, 20,
|
||||
21, 22, 23, 24, 25, 26, 27, 6, 28, 6,
|
||||
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
|
||||
39, 40, 41, 6, 42, 43, 44, 45, 6, 6,
|
||||
46, 6, 6, 6, 6, 6, 47, 48, 50, 50,
|
||||
53, 53, 53, 53, 54, 54, 54, 54, 55, 49,
|
||||
56, 57, 57, 57, 57, 69, 70, 58, 61, 73,
|
||||
187, 77, 89, 51, 51, 62, 63, 74, 78, 75,
|
||||
83, 71, 72, 58, 90, 108, 76, 84, 85, 101,
|
||||
15, 16, 15, 15, 17, 18, 6, 19, 20, 21,
|
||||
22, 23, 24, 25, 26, 27, 28, 6, 29, 6,
|
||||
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
|
||||
40, 41, 42, 6, 43, 44, 45, 46, 6, 6,
|
||||
47, 6, 6, 6, 6, 6, 48, 49, 51, 51,
|
||||
54, 54, 54, 54, 55, 55, 55, 55, 56, 142,
|
||||
57, 58, 58, 58, 58, 143, 56, 59, 57, 58,
|
||||
58, 58, 58, 52, 52, 59, 50, 62, 70, 71,
|
||||
74, 90, 78, 59, 63, 64, 116, 117, 75, 79,
|
||||
|
||||
91, 145, 109, 146, 102, 92, 105, 93, 103, 94,
|
||||
86, 115, 116, 106, 110, 87, 107, 141, 111, 147,
|
||||
95, 88, 96, 142, 186, 97, 148, 98, 185, 112,
|
||||
53, 53, 53, 53, 113, 184, 118, 54, 54, 54,
|
||||
54, 183, 182, 119, 120, 120, 120, 120, 181, 180,
|
||||
121, 179, 118, 178, 122, 122, 122, 122, 177, 119,
|
||||
123, 125, 125, 125, 125, 55, 121, 56, 57, 57,
|
||||
57, 57, 176, 124, 58, 124, 123, 125, 125, 125,
|
||||
125, 157, 162, 175, 162, 158, 163, 163, 163, 163,
|
||||
58, 174, 173, 164, 172, 164, 159, 165, 165, 165,
|
||||
76, 59, 84, 91, 72, 73, 102, 77, 188, 85,
|
||||
86, 103, 92, 106, 146, 104, 147, 93, 109, 94,
|
||||
107, 95, 87, 108, 148, 110, 111, 88, 187, 186,
|
||||
112, 149, 96, 89, 97, 185, 184, 98, 183, 99,
|
||||
182, 113, 54, 54, 54, 54, 114, 181, 119, 55,
|
||||
55, 55, 55, 180, 179, 120, 121, 121, 121, 121,
|
||||
178, 177, 122, 176, 119, 175, 123, 123, 123, 123,
|
||||
174, 120, 124, 126, 126, 126, 126, 56, 122, 57,
|
||||
58, 58, 58, 58, 173, 125, 59, 125, 124, 126,
|
||||
126, 126, 126, 158, 163, 172, 163, 159, 164, 164,
|
||||
|
||||
165, 160, 120, 120, 120, 120, 171, 166, 121, 166,
|
||||
170, 167, 167, 167, 167, 122, 122, 122, 122, 161,
|
||||
156, 123, 155, 168, 121, 168, 154, 169, 169, 169,
|
||||
169, 125, 125, 125, 125, 153, 152, 123, 163, 163,
|
||||
163, 163, 163, 163, 163, 163, 165, 165, 165, 165,
|
||||
165, 165, 165, 165, 167, 167, 167, 167, 167, 167,
|
||||
167, 167, 169, 169, 169, 169, 169, 169, 169, 169,
|
||||
151, 150, 149, 144, 143, 140, 139, 138, 137, 136,
|
||||
135, 134, 133, 132, 131, 130, 129, 128, 127, 126,
|
||||
52, 117, 114, 104, 100, 99, 82, 81, 80, 79,
|
||||
164, 164, 59, 171, 162, 165, 157, 165, 160, 166,
|
||||
166, 166, 166, 161, 121, 121, 121, 121, 156, 167,
|
||||
122, 167, 155, 168, 168, 168, 168, 123, 123, 123,
|
||||
123, 154, 153, 124, 152, 169, 122, 169, 151, 170,
|
||||
170, 170, 170, 126, 126, 126, 126, 150, 145, 124,
|
||||
164, 164, 164, 164, 164, 164, 164, 164, 166, 166,
|
||||
166, 166, 166, 166, 166, 166, 168, 168, 168, 168,
|
||||
168, 168, 168, 168, 170, 170, 170, 170, 170, 170,
|
||||
170, 170, 144, 141, 140, 139, 138, 137, 136, 135,
|
||||
134, 133, 132, 131, 130, 129, 128, 127, 53, 118,
|
||||
|
||||
68, 67, 66, 65, 64, 60, 59, 52, 188, 5,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188
|
||||
115, 105, 101, 100, 83, 82, 81, 80, 69, 68,
|
||||
67, 66, 65, 61, 60, 53, 189, 5, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189
|
||||
} ;
|
||||
|
||||
static yyconst flex_int16_t yy_chk[369] =
|
||||
static yyconst flex_int16_t yy_chk[377] =
|
||||
{ 0,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
@@ -552,40 +553,41 @@ static yyconst flex_int16_t yy_chk[369] =
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 3, 4,
|
||||
12, 12, 12, 12, 14, 14, 14, 14, 15, 189,
|
||||
15, 15, 15, 15, 15, 28, 28, 15, 21, 29,
|
||||
186, 30, 37, 3, 4, 21, 21, 29, 30, 29,
|
||||
36, 28, 28, 15, 37, 44, 29, 36, 36, 41,
|
||||
12, 12, 12, 12, 14, 14, 14, 14, 15, 90,
|
||||
15, 15, 15, 15, 15, 90, 16, 15, 16, 16,
|
||||
16, 16, 16, 3, 4, 16, 190, 22, 29, 29,
|
||||
30, 38, 31, 15, 22, 22, 48, 48, 30, 31,
|
||||
|
||||
38, 96, 44, 96, 41, 38, 43, 38, 41, 38,
|
||||
36, 47, 47, 43, 45, 36, 43, 89, 45, 98,
|
||||
38, 36, 38, 89, 181, 38, 98, 38, 180, 45,
|
||||
53, 53, 53, 53, 45, 175, 53, 54, 54, 54,
|
||||
54, 174, 173, 54, 55, 55, 55, 55, 158, 156,
|
||||
55, 155, 53, 154, 56, 56, 56, 56, 153, 54,
|
||||
56, 124, 124, 124, 124, 57, 55, 57, 57, 57,
|
||||
57, 57, 152, 58, 57, 58, 56, 58, 58, 58,
|
||||
58, 116, 118, 144, 118, 116, 118, 118, 118, 118,
|
||||
57, 143, 133, 119, 132, 119, 116, 119, 119, 119,
|
||||
30, 16, 37, 38, 29, 29, 42, 30, 187, 37,
|
||||
37, 42, 39, 44, 97, 42, 97, 39, 45, 39,
|
||||
44, 39, 37, 44, 99, 45, 46, 37, 182, 181,
|
||||
46, 99, 39, 37, 39, 176, 175, 39, 174, 39,
|
||||
159, 46, 54, 54, 54, 54, 46, 157, 54, 55,
|
||||
55, 55, 55, 156, 155, 55, 56, 56, 56, 56,
|
||||
154, 153, 56, 145, 54, 144, 57, 57, 57, 57,
|
||||
134, 55, 57, 125, 125, 125, 125, 58, 56, 58,
|
||||
58, 58, 58, 58, 133, 59, 58, 59, 57, 59,
|
||||
59, 59, 59, 117, 119, 132, 119, 117, 119, 119,
|
||||
|
||||
119, 116, 120, 120, 120, 120, 131, 121, 120, 121,
|
||||
128, 121, 121, 121, 121, 122, 122, 122, 122, 117,
|
||||
111, 122, 109, 123, 120, 123, 108, 123, 123, 123,
|
||||
123, 125, 125, 125, 125, 106, 105, 122, 162, 162,
|
||||
162, 162, 163, 163, 163, 163, 164, 164, 164, 164,
|
||||
165, 165, 165, 165, 166, 166, 166, 166, 167, 167,
|
||||
167, 167, 168, 168, 168, 168, 169, 169, 169, 169,
|
||||
104, 103, 102, 94, 90, 88, 85, 81, 79, 77,
|
||||
76, 75, 72, 71, 70, 69, 67, 66, 63, 60,
|
||||
52, 48, 46, 42, 40, 39, 35, 33, 32, 31,
|
||||
119, 119, 58, 129, 118, 120, 112, 120, 117, 120,
|
||||
120, 120, 120, 117, 121, 121, 121, 121, 110, 122,
|
||||
121, 122, 109, 122, 122, 122, 122, 123, 123, 123,
|
||||
123, 107, 106, 123, 105, 124, 121, 124, 104, 124,
|
||||
124, 124, 124, 126, 126, 126, 126, 103, 95, 123,
|
||||
163, 163, 163, 163, 164, 164, 164, 164, 165, 165,
|
||||
165, 165, 166, 166, 166, 166, 167, 167, 167, 167,
|
||||
168, 168, 168, 168, 169, 169, 169, 169, 170, 170,
|
||||
170, 170, 91, 89, 86, 82, 80, 78, 77, 76,
|
||||
73, 72, 71, 70, 68, 67, 64, 61, 53, 49,
|
||||
|
||||
26, 25, 24, 23, 22, 18, 17, 8, 5, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
|
||||
188, 188, 188, 188, 188, 188, 188, 188
|
||||
47, 43, 41, 40, 36, 34, 33, 32, 27, 26,
|
||||
25, 24, 23, 19, 18, 8, 5, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
|
||||
189, 189, 189, 189, 189, 189
|
||||
} ;
|
||||
|
||||
static yy_state_type yy_last_accepting_state;
|
||||
@@ -616,7 +618,7 @@ char *yytext;
|
||||
/* the manual says "somewhat more optimized" */
|
||||
/* no support for include files is planned */
|
||||
|
||||
#line 620 "QuantityLexer.c"
|
||||
#line 622 "QuantityLexer.c"
|
||||
|
||||
#define INITIAL 0
|
||||
#define C_COMMENT 1
|
||||
@@ -836,7 +838,7 @@ YY_DECL
|
||||
#line 31 "QuantityParser.l"
|
||||
|
||||
|
||||
#line 840 "QuantityLexer.c"
|
||||
#line 842 "QuantityLexer.c"
|
||||
|
||||
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
|
||||
{
|
||||
@@ -863,13 +865,13 @@ yy_match:
|
||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 189 )
|
||||
if ( yy_current_state >= 190 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||
++yy_cp;
|
||||
}
|
||||
while ( yy_current_state != 188 );
|
||||
while ( yy_current_state != 189 );
|
||||
yy_cp = (yy_last_accepting_cpos);
|
||||
yy_current_state = (yy_last_accepting_state);
|
||||
|
||||
@@ -1268,7 +1270,7 @@ yylval = Quantity::Gon; return UNIT; // gon
|
||||
case 76:
|
||||
YY_RULE_SETUP
|
||||
#line 133 "QuantityParser.l"
|
||||
{ yylval = Quantity(num_change(yytext,'.',','));return NUM; }
|
||||
yylval = Quantity(1.0); return ONE;
|
||||
YY_BREAK
|
||||
case 77:
|
||||
YY_RULE_SETUP
|
||||
@@ -1278,7 +1280,7 @@ YY_RULE_SETUP
|
||||
case 78:
|
||||
YY_RULE_SETUP
|
||||
#line 135 "QuantityParser.l"
|
||||
{ yylval = Quantity(num_change(yytext,',','.'));return NUM; }
|
||||
{ yylval = Quantity(num_change(yytext,'.',','));return NUM; }
|
||||
YY_BREAK
|
||||
case 79:
|
||||
YY_RULE_SETUP
|
||||
@@ -1287,105 +1289,110 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 80:
|
||||
YY_RULE_SETUP
|
||||
#line 139 "QuantityParser.l"
|
||||
{yylval = Quantity(M_PI) ; return NUM;} // constant pi
|
||||
#line 137 "QuantityParser.l"
|
||||
{ yylval = Quantity(num_change(yytext,',','.'));return NUM; }
|
||||
YY_BREAK
|
||||
case 81:
|
||||
YY_RULE_SETUP
|
||||
#line 140 "QuantityParser.l"
|
||||
{yylval = Quantity(M_E) ; return NUM;} // constant e
|
||||
{yylval = Quantity(M_PI) ; return NUM;} // constant pi
|
||||
YY_BREAK
|
||||
case 82:
|
||||
YY_RULE_SETUP
|
||||
#line 142 "QuantityParser.l"
|
||||
return ACOS;
|
||||
#line 141 "QuantityParser.l"
|
||||
{yylval = Quantity(M_E) ; return NUM;} // constant e
|
||||
YY_BREAK
|
||||
case 83:
|
||||
YY_RULE_SETUP
|
||||
#line 143 "QuantityParser.l"
|
||||
return ASIN;
|
||||
return ACOS;
|
||||
YY_BREAK
|
||||
case 84:
|
||||
YY_RULE_SETUP
|
||||
#line 144 "QuantityParser.l"
|
||||
return ATAN;
|
||||
return ASIN;
|
||||
YY_BREAK
|
||||
case 85:
|
||||
YY_RULE_SETUP
|
||||
#line 145 "QuantityParser.l"
|
||||
return ATAN2;
|
||||
return ATAN;
|
||||
YY_BREAK
|
||||
case 86:
|
||||
YY_RULE_SETUP
|
||||
#line 146 "QuantityParser.l"
|
||||
return COS;
|
||||
return ATAN2;
|
||||
YY_BREAK
|
||||
case 87:
|
||||
YY_RULE_SETUP
|
||||
#line 147 "QuantityParser.l"
|
||||
return EXP;
|
||||
return COS;
|
||||
YY_BREAK
|
||||
case 88:
|
||||
YY_RULE_SETUP
|
||||
#line 148 "QuantityParser.l"
|
||||
return ABS;
|
||||
return EXP;
|
||||
YY_BREAK
|
||||
case 89:
|
||||
YY_RULE_SETUP
|
||||
#line 149 "QuantityParser.l"
|
||||
return MOD;
|
||||
return ABS;
|
||||
YY_BREAK
|
||||
case 90:
|
||||
YY_RULE_SETUP
|
||||
#line 150 "QuantityParser.l"
|
||||
return LOG;
|
||||
return MOD;
|
||||
YY_BREAK
|
||||
case 91:
|
||||
YY_RULE_SETUP
|
||||
#line 151 "QuantityParser.l"
|
||||
return LOG10;
|
||||
return LOG;
|
||||
YY_BREAK
|
||||
case 92:
|
||||
YY_RULE_SETUP
|
||||
#line 152 "QuantityParser.l"
|
||||
return POW;
|
||||
return LOG10;
|
||||
YY_BREAK
|
||||
case 93:
|
||||
YY_RULE_SETUP
|
||||
#line 153 "QuantityParser.l"
|
||||
return SIN;
|
||||
return POW;
|
||||
YY_BREAK
|
||||
case 94:
|
||||
YY_RULE_SETUP
|
||||
#line 154 "QuantityParser.l"
|
||||
return SINH;
|
||||
return SIN;
|
||||
YY_BREAK
|
||||
case 95:
|
||||
YY_RULE_SETUP
|
||||
#line 155 "QuantityParser.l"
|
||||
return TAN;
|
||||
return SINH;
|
||||
YY_BREAK
|
||||
case 96:
|
||||
YY_RULE_SETUP
|
||||
#line 156 "QuantityParser.l"
|
||||
return TANH;
|
||||
return TAN;
|
||||
YY_BREAK
|
||||
case 97:
|
||||
YY_RULE_SETUP
|
||||
#line 157 "QuantityParser.l"
|
||||
return SQRT;
|
||||
return TANH;
|
||||
YY_BREAK
|
||||
case 98:
|
||||
YY_RULE_SETUP
|
||||
#line 159 "QuantityParser.l"
|
||||
return *yytext;
|
||||
#line 158 "QuantityParser.l"
|
||||
return SQRT;
|
||||
YY_BREAK
|
||||
case 99:
|
||||
YY_RULE_SETUP
|
||||
#line 160 "QuantityParser.l"
|
||||
return *yytext;
|
||||
YY_BREAK
|
||||
case 100:
|
||||
YY_RULE_SETUP
|
||||
#line 161 "QuantityParser.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 1389 "QuantityLexer.c"
|
||||
#line 1396 "QuantityLexer.c"
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
case YY_STATE_EOF(C_COMMENT):
|
||||
yyterminate();
|
||||
@@ -1574,7 +1581,7 @@ static int yy_get_next_buffer (void)
|
||||
|
||||
else
|
||||
{
|
||||
yy_size_t num_to_read =
|
||||
int num_to_read =
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
|
||||
|
||||
while ( num_to_read <= 0 )
|
||||
@@ -1643,9 +1650,9 @@ static int yy_get_next_buffer (void)
|
||||
else
|
||||
ret_val = EOB_ACT_CONTINUE_SCAN;
|
||||
|
||||
if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
|
||||
if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
|
||||
/* Extend the array by 50%, plus the number we really need. */
|
||||
int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
|
||||
yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
|
||||
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
|
||||
@@ -1680,7 +1687,7 @@ static int yy_get_next_buffer (void)
|
||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 189 )
|
||||
if ( yy_current_state >= 190 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||
@@ -1708,11 +1715,11 @@ static int yy_get_next_buffer (void)
|
||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||
{
|
||||
yy_current_state = (int) yy_def[yy_current_state];
|
||||
if ( yy_current_state >= 189 )
|
||||
if ( yy_current_state >= 190 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||
yy_is_jam = (yy_current_state == 188);
|
||||
yy_is_jam = (yy_current_state == 189);
|
||||
|
||||
return yy_is_jam ? 0 : yy_current_state;
|
||||
}
|
||||
@@ -2025,7 +2032,7 @@ static void yyensure_buffer_stack (void)
|
||||
* scanner will even need a stack. We use 2 instead of 1 to avoid an
|
||||
* immediate realloc on the next call.
|
||||
*/
|
||||
num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
|
||||
num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
|
||||
(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
|
||||
(num_to_alloc * sizeof(struct yy_buffer_state*)
|
||||
);
|
||||
@@ -2161,7 +2168,7 @@ static void yy_fatal_error (yyconst char* msg )
|
||||
do \
|
||||
{ \
|
||||
/* Undo effects of setting up yytext. */ \
|
||||
int yyless_macro_arg = (n); \
|
||||
yy_size_t yyless_macro_arg = (n); \
|
||||
YY_LESS_LINENO(yyless_macro_arg);\
|
||||
yytext[yyleng] = (yy_hold_char); \
|
||||
(yy_c_buf_p) = yytext + yyless_macro_arg; \
|
||||
@@ -2351,4 +2358,4 @@ void yyfree (void * ptr )
|
||||
|
||||
#define YYTABLES_NAME "yytables"
|
||||
|
||||
#line 160 "QuantityParser.l"
|
||||
#line 161 "QuantityParser.l"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/* A Bison parser, made by GNU Bison 3.0.2. */
|
||||
/* A Bison parser, made by GNU Bison 3.0.4. */
|
||||
|
||||
/* Bison implementation for Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -44,7 +44,7 @@
|
||||
#define YYBISON 1
|
||||
|
||||
/* Bison version. */
|
||||
#define YYBISON_VERSION "3.0.2"
|
||||
#define YYBISON_VERSION "3.0.4"
|
||||
|
||||
/* Skeleton name. */
|
||||
#define YYSKELETON_NAME "yacc.c"
|
||||
@@ -109,24 +109,26 @@ extern int yydebug;
|
||||
{
|
||||
UNIT = 258,
|
||||
NUM = 259,
|
||||
MINUSSIGN = 260,
|
||||
ACOS = 261,
|
||||
ASIN = 262,
|
||||
ATAN = 263,
|
||||
ATAN2 = 264,
|
||||
COS = 265,
|
||||
EXP = 266,
|
||||
ABS = 267,
|
||||
MOD = 268,
|
||||
LOG = 269,
|
||||
LOG10 = 270,
|
||||
POW = 271,
|
||||
SIN = 272,
|
||||
SINH = 273,
|
||||
TAN = 274,
|
||||
TANH = 275,
|
||||
SQRT = 276,
|
||||
NEG = 277
|
||||
ONE = 260,
|
||||
MINUSSIGN = 261,
|
||||
ACOS = 262,
|
||||
ASIN = 263,
|
||||
ATAN = 264,
|
||||
ATAN2 = 265,
|
||||
COS = 266,
|
||||
EXP = 267,
|
||||
ABS = 268,
|
||||
MOD = 269,
|
||||
LOG = 270,
|
||||
LOG10 = 271,
|
||||
POW = 272,
|
||||
SIN = 273,
|
||||
SINH = 274,
|
||||
TAN = 275,
|
||||
TANH = 276,
|
||||
SQRT = 277,
|
||||
RECIPROCALSLASH = 278,
|
||||
NEG = 279
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -146,7 +148,7 @@ int yyparse (void);
|
||||
|
||||
/* Copy the second part of user declarations. */
|
||||
|
||||
#line 150 "QuantityParser.c" /* yacc.c:358 */
|
||||
#line 152 "QuantityParser.c" /* yacc.c:358 */
|
||||
|
||||
#ifdef short
|
||||
# undef short
|
||||
@@ -386,23 +388,23 @@ union yyalloc
|
||||
#endif /* !YYCOPY_NEEDED */
|
||||
|
||||
/* YYFINAL -- State number of the termination state. */
|
||||
#define YYFINAL 39
|
||||
#define YYFINAL 42
|
||||
/* YYLAST -- Last index in YYTABLE. */
|
||||
#define YYLAST 200
|
||||
#define YYLAST 245
|
||||
|
||||
/* YYNTOKENS -- Number of terminals. */
|
||||
#define YYNTOKENS 29
|
||||
#define YYNTOKENS 31
|
||||
/* YYNNTS -- Number of nonterminals. */
|
||||
#define YYNNTS 5
|
||||
/* YYNRULES -- Number of rules. */
|
||||
#define YYNRULES 33
|
||||
#define YYNRULES 35
|
||||
/* YYNSTATES -- Number of states. */
|
||||
#define YYNSTATES 88
|
||||
#define YYNSTATES 93
|
||||
|
||||
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
|
||||
by yylex, with out-of-bounds checking. */
|
||||
#define YYUNDEFTOK 2
|
||||
#define YYMAXUTOK 277
|
||||
#define YYMAXUTOK 279
|
||||
|
||||
#define YYTRANSLATE(YYX) \
|
||||
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
||||
@@ -415,12 +417,12 @@ 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, 2, 2, 2, 24, 2, 2,
|
||||
29, 30, 25, 23, 2, 2, 2, 26, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 26, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 28, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
@@ -438,17 +440,17 @@ static const yytype_uint8 yytranslate[] =
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
|
||||
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
|
||||
15, 16, 17, 18, 19, 20, 21, 25
|
||||
15, 16, 17, 18, 19, 20, 21, 22, 24, 27
|
||||
};
|
||||
|
||||
#if YYDEBUG
|
||||
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
|
||||
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, 62, 63,
|
||||
64, 65, 66, 68
|
||||
0, 34, 34, 35, 36, 37, 38, 40, 41, 42,
|
||||
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
|
||||
53, 54, 55, 56, 57, 58, 59, 60, 61, 63,
|
||||
64, 65, 66, 67, 68, 70
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -457,10 +459,11 @@ static const yytype_uint8 yyrline[] =
|
||||
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
|
||||
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_NULLPTR
|
||||
"$end", "error", "$undefined", "UNIT", "NUM", "ONE", "MINUSSIGN",
|
||||
"ACOS", "ASIN", "ATAN", "ATAN2", "COS", "EXP", "ABS", "MOD", "LOG",
|
||||
"LOG10", "POW", "SIN", "SINH", "TAN", "TANH", "SQRT", "'+'",
|
||||
"RECIPROCALSLASH", "'*'", "'/'", "NEG", "'^'", "'('", "')'", "$accept",
|
||||
"input", "num", "unit", "quantity", YY_NULLPTR
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -471,14 +474,15 @@ 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
|
||||
275, 276, 277, 43, 278, 42, 47, 279, 94, 40,
|
||||
41
|
||||
};
|
||||
# endif
|
||||
|
||||
#define YYPACT_NINF -19
|
||||
#define YYPACT_NINF -22
|
||||
|
||||
#define yypact_value_is_default(Yystate) \
|
||||
(!!((Yystate) == (-19)))
|
||||
(!!((Yystate) == (-22)))
|
||||
|
||||
#define YYTABLE_NINF -1
|
||||
|
||||
@@ -489,15 +493,16 @@ static const yytype_uint16 yytoknum[] =
|
||||
STATE-NUM. */
|
||||
static const yytype_int16 yypact[] =
|
||||
{
|
||||
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
|
||||
53, -22, -22, -22, 99, -19, -12, -8, -7, -4,
|
||||
-3, -1, 13, 14, 15, 16, 24, 34, 53, 19,
|
||||
73, -14, 99, -2, -22, 99, 42, 99, 99, 99,
|
||||
99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
|
||||
61, -21, -22, 51, 99, 99, 99, 99, 99, -2,
|
||||
-14, -2, -2, 99, 73, -22, 52, 107, 116, 125,
|
||||
134, 143, 152, 161, 170, 179, 188, 197, 206, 215,
|
||||
-22, -22, -10, -10, 42, 42, 42, 52, 52, -15,
|
||||
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
|
||||
-22, -22, -22
|
||||
};
|
||||
|
||||
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
|
||||
@@ -505,27 +510,28 @@ static const yytype_int16 yypact[] =
|
||||
means the default is an error. */
|
||||
static const yytype_uint8 yydefact[] =
|
||||
{
|
||||
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
|
||||
2, 29, 7, 8, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
3, 4, 5, 0, 8, 0, 13, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
|
||||
35, 0, 0, 0, 0, 6, 30, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
15, 34, 10, 9, 11, 12, 14, 31, 32, 33,
|
||||
16, 17, 18, 28, 20, 19, 21, 22, 23, 24,
|
||||
25, 26, 27
|
||||
};
|
||||
|
||||
/* YYPGOTO[NTERM-NUM]. */
|
||||
static const yytype_int8 yypgoto[] =
|
||||
{
|
||||
-19, -19, 2, 0, -4
|
||||
-22, -22, 2, 0, 59
|
||||
};
|
||||
|
||||
/* YYDEFGOTO[NTERM-NUM]. */
|
||||
static const yytype_int8 yydefgoto[] =
|
||||
{
|
||||
-1, 18, 37, 38, 21
|
||||
-1, 19, 40, 41, 22
|
||||
};
|
||||
|
||||
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
|
||||
@@ -533,85 +539,94 @@ static const yytype_int8 yydefgoto[] =
|
||||
number is the opposite. If YYTABLE_NINF, syntax error. */
|
||||
static const yytype_uint8 yytable[] =
|
||||
{
|
||||
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
|
||||
21, 1, 20, 43, 51, 52, 26, 53, 45, 71,
|
||||
27, 51, 52, 48, 53, 46, 47, 28, 48, 42,
|
||||
50, 29, 30, 56, 54, 31, 32, 49, 33, 57,
|
||||
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
|
||||
68, 69, 34, 35, 36, 37, 72, 73, 74, 75,
|
||||
76, 77, 78, 38, 50, 79, 1, 2, 3, 4,
|
||||
5, 6, 7, 39, 8, 9, 10, 44, 11, 12,
|
||||
48, 13, 14, 15, 16, 17, 1, 23, 43, 44,
|
||||
53, 55, 18, 0, 45, 0, 46, 47, 0, 48,
|
||||
0, 70, 0, 0, 0, 0, 45, 0, 46, 47,
|
||||
0, 48, 49, 2, 24, 4, 5, 6, 7, 0,
|
||||
8, 9, 10, 44, 11, 12, 0, 13, 14, 15,
|
||||
16, 17, 44, 0, 0, 0, 0, 0, 25, 0,
|
||||
45, 44, 46, 47, 0, 48, 0, 80, 0, 45,
|
||||
44, 46, 47, 0, 48, 0, 81, 0, 45, 44,
|
||||
46, 47, 0, 48, 0, 82, 0, 45, 44, 46,
|
||||
47, 0, 48, 0, 83, 0, 45, 44, 46, 47,
|
||||
0, 48, 0, 84, 0, 45, 44, 46, 47, 0,
|
||||
48, 0, 85, 0, 45, 44, 46, 47, 0, 48,
|
||||
0, 86, 0, 45, 44, 46, 47, 0, 48, 0,
|
||||
87, 0, 45, 44, 46, 47, 0, 48, 0, 88,
|
||||
0, 45, 44, 46, 47, 0, 48, 0, 89, 0,
|
||||
45, 44, 46, 47, 0, 48, 0, 90, 0, 45,
|
||||
0, 46, 47, 0, 48, 0, 91, 0, 45, 0,
|
||||
46, 47, 0, 48, 0, 92
|
||||
};
|
||||
|
||||
static const yytype_int8 yycheck[] =
|
||||
{
|
||||
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,
|
||||
-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, 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
|
||||
0, 3, 0, 5, 25, 26, 4, 28, 23, 30,
|
||||
29, 25, 26, 28, 28, 25, 26, 29, 28, 0,
|
||||
20, 29, 29, 23, 22, 29, 29, 29, 29, 27,
|
||||
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
|
||||
38, 39, 29, 29, 29, 29, 44, 45, 46, 47,
|
||||
48, 51, 52, 29, 54, 53, 3, 4, 5, 6,
|
||||
7, 8, 9, 29, 11, 12, 13, 6, 15, 16,
|
||||
28, 18, 19, 20, 21, 22, 3, 26, 5, 6,
|
||||
28, 22, 29, -1, 23, -1, 25, 26, -1, 28,
|
||||
-1, 30, -1, -1, -1, -1, 23, -1, 25, 26,
|
||||
-1, 28, 29, 4, 5, 6, 7, 8, 9, -1,
|
||||
11, 12, 13, 6, 15, 16, -1, 18, 19, 20,
|
||||
21, 22, 6, -1, -1, -1, -1, -1, 29, -1,
|
||||
23, 6, 25, 26, -1, 28, -1, 30, -1, 23,
|
||||
6, 25, 26, -1, 28, -1, 30, -1, 23, 6,
|
||||
25, 26, -1, 28, -1, 30, -1, 23, 6, 25,
|
||||
26, -1, 28, -1, 30, -1, 23, 6, 25, 26,
|
||||
-1, 28, -1, 30, -1, 23, 6, 25, 26, -1,
|
||||
28, -1, 30, -1, 23, 6, 25, 26, -1, 28,
|
||||
-1, 30, -1, 23, 6, 25, 26, -1, 28, -1,
|
||||
30, -1, 23, 6, 25, 26, -1, 28, -1, 30,
|
||||
-1, 23, 6, 25, 26, -1, 28, -1, 30, -1,
|
||||
23, 6, 25, 26, -1, 28, -1, 30, -1, 23,
|
||||
-1, 25, 26, -1, 28, -1, 30, -1, 23, -1,
|
||||
25, 26, -1, 28, -1, 30
|
||||
};
|
||||
|
||||
/* 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, 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
|
||||
0, 3, 4, 5, 6, 7, 8, 9, 11, 12,
|
||||
13, 15, 16, 18, 19, 20, 21, 22, 29, 32,
|
||||
33, 34, 35, 26, 5, 29, 33, 29, 29, 29,
|
||||
29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
|
||||
33, 34, 0, 5, 6, 23, 25, 26, 28, 29,
|
||||
34, 25, 26, 28, 33, 35, 34, 33, 33, 33,
|
||||
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
|
||||
30, 30, 33, 33, 33, 33, 33, 34, 34, 33,
|
||||
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
|
||||
30, 30, 30
|
||||
};
|
||||
|
||||
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
||||
static const yytype_uint8 yyr1[] =
|
||||
{
|
||||
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
|
||||
0, 31, 32, 32, 32, 32, 32, 33, 33, 33,
|
||||
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
|
||||
33, 33, 33, 33, 33, 33, 33, 33, 33, 34,
|
||||
34, 34, 34, 34, 34, 35
|
||||
};
|
||||
|
||||
/* YYR2[YYN] -- Number of symbols on the 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, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 1, 3,
|
||||
3, 3, 3, 2
|
||||
0, 2, 0, 1, 1, 1, 2, 1, 1, 3,
|
||||
3, 3, 3, 2, 3, 3, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
3, 3, 3, 3, 3, 2
|
||||
};
|
||||
|
||||
|
||||
@@ -1288,199 +1303,211 @@ yyreduce:
|
||||
switch (yyn)
|
||||
{
|
||||
case 2:
|
||||
#line 33 "QuantityParser.y" /* yacc.c:1646 */
|
||||
#line 34 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ QuantResult = Quantity(DOUBLE_MIN); /* empty input */ }
|
||||
#line 1294 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 1309 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 3:
|
||||
#line 34 "QuantityParser.y" /* yacc.c:1646 */
|
||||
#line 35 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ QuantResult = (yyvsp[0]) ; }
|
||||
#line 1300 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 1315 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 4:
|
||||
#line 35 "QuantityParser.y" /* yacc.c:1646 */
|
||||
#line 36 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ QuantResult = (yyvsp[0]) ; }
|
||||
#line 1306 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 1321 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 5:
|
||||
#line 36 "QuantityParser.y" /* yacc.c:1646 */
|
||||
#line 37 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ QuantResult = (yyvsp[0]) ; }
|
||||
#line 1312 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 1327 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 6:
|
||||
#line 37 "QuantityParser.y" /* yacc.c:1646 */
|
||||
#line 38 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ QuantResult = (yyvsp[-1]) + (yyvsp[0]); }
|
||||
#line 1318 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 1333 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 7:
|
||||
#line 39 "QuantityParser.y" /* yacc.c:1646 */
|
||||
#line 40 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[0]); }
|
||||
#line 1324 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 1339 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 8:
|
||||
#line 40 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity((yyvsp[-2]).getValue() + (yyvsp[0]).getValue()); }
|
||||
#line 1330 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 41 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[0]); }
|
||||
#line 1345 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 9:
|
||||
#line 41 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity((yyvsp[-2]).getValue() - (yyvsp[0]).getValue()); }
|
||||
#line 1336 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 42 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity((yyvsp[-2]).getValue() + (yyvsp[0]).getValue()); }
|
||||
#line 1351 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 10:
|
||||
#line 42 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity((yyvsp[-2]).getValue() * (yyvsp[0]).getValue()); }
|
||||
#line 1342 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 43 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity((yyvsp[-2]).getValue() - (yyvsp[0]).getValue()); }
|
||||
#line 1357 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 11:
|
||||
#line 43 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity((yyvsp[-2]).getValue() / (yyvsp[0]).getValue()); }
|
||||
#line 1348 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 44 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity((yyvsp[-2]).getValue() * (yyvsp[0]).getValue()); }
|
||||
#line 1363 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 12:
|
||||
#line 44 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(-(yyvsp[0]).getValue()); }
|
||||
#line 1354 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 45 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity((yyvsp[-2]).getValue() / (yyvsp[0]).getValue()); }
|
||||
#line 1369 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 13:
|
||||
#line 45 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(pow ((yyvsp[-2]).getValue(), (yyvsp[0]).getValue()));}
|
||||
#line 1360 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 46 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(-(yyvsp[0]).getValue()); }
|
||||
#line 1375 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 14:
|
||||
#line 46 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-1]); }
|
||||
#line 1366 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 47 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(pow ((yyvsp[-2]).getValue(), (yyvsp[0]).getValue()));}
|
||||
#line 1381 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 15:
|
||||
#line 47 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(acos((yyvsp[-1]).getValue())); }
|
||||
#line 1372 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 48 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-1]); }
|
||||
#line 1387 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 16:
|
||||
#line 48 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(asin((yyvsp[-1]).getValue())); }
|
||||
#line 1378 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 49 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(acos((yyvsp[-1]).getValue())); }
|
||||
#line 1393 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 17:
|
||||
#line 49 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(atan((yyvsp[-1]).getValue())); }
|
||||
#line 1384 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 50 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(asin((yyvsp[-1]).getValue())); }
|
||||
#line 1399 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 18:
|
||||
#line 50 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(fabs((yyvsp[-1]).getValue())); }
|
||||
#line 1390 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 51 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(atan((yyvsp[-1]).getValue())); }
|
||||
#line 1405 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 19:
|
||||
#line 51 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(exp((yyvsp[-1]).getValue())); }
|
||||
#line 1396 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 52 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(fabs((yyvsp[-1]).getValue())); }
|
||||
#line 1411 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 20:
|
||||
#line 52 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(log((yyvsp[-1]).getValue())); }
|
||||
#line 1402 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 53 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(exp((yyvsp[-1]).getValue())); }
|
||||
#line 1417 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 21:
|
||||
#line 53 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(log10((yyvsp[-1]).getValue())); }
|
||||
#line 1408 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 54 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(log((yyvsp[-1]).getValue())); }
|
||||
#line 1423 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 22:
|
||||
#line 54 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(sin((yyvsp[-1]).getValue())); }
|
||||
#line 1414 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 55 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(log10((yyvsp[-1]).getValue())); }
|
||||
#line 1429 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 23:
|
||||
#line 55 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(sinh((yyvsp[-1]).getValue())); }
|
||||
#line 1420 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 56 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(sin((yyvsp[-1]).getValue())); }
|
||||
#line 1435 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 24:
|
||||
#line 56 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(tan((yyvsp[-1]).getValue())); }
|
||||
#line 1426 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 57 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(sinh((yyvsp[-1]).getValue())); }
|
||||
#line 1441 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 25:
|
||||
#line 57 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(tanh((yyvsp[-1]).getValue())); }
|
||||
#line 1432 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 58 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(tan((yyvsp[-1]).getValue())); }
|
||||
#line 1447 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 26:
|
||||
#line 58 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(sqrt((yyvsp[-1]).getValue())); }
|
||||
#line 1438 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 59 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(tanh((yyvsp[-1]).getValue())); }
|
||||
#line 1453 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 27:
|
||||
#line 59 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(cos((yyvsp[-1]).getValue())); }
|
||||
#line 1444 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 60 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(sqrt((yyvsp[-1]).getValue())); }
|
||||
#line 1459 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 28:
|
||||
#line 62 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[0]); }
|
||||
#line 1450 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 61 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(cos((yyvsp[-1]).getValue())); }
|
||||
#line 1465 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 29:
|
||||
#line 63 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-2]) * (yyvsp[0]); }
|
||||
#line 1456 "QuantityParser.c" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[0]); }
|
||||
#line 1471 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 30:
|
||||
#line 64 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-2]) / (yyvsp[0]); }
|
||||
#line 1462 "QuantityParser.c" /* yacc.c:1646 */
|
||||
{ (yyval) = Quantity(1.0)/(yyvsp[0]); }
|
||||
#line 1477 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 31:
|
||||
#line 65 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-2]).pow ((yyvsp[0])); }
|
||||
#line 1468 "QuantityParser.c" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-2]) * (yyvsp[0]); }
|
||||
#line 1483 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 32:
|
||||
#line 66 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-1]); }
|
||||
#line 1474 "QuantityParser.c" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-2]) / (yyvsp[0]); }
|
||||
#line 1489 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 33:
|
||||
#line 67 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-2]).pow ((yyvsp[0])); }
|
||||
#line 1495 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 34:
|
||||
#line 68 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-1]); }
|
||||
#line 1501 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 35:
|
||||
#line 70 "QuantityParser.y" /* yacc.c:1646 */
|
||||
{ (yyval) = (yyvsp[-1])*(yyvsp[0]); }
|
||||
#line 1480 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 1507 "QuantityParser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
|
||||
#line 1484 "QuantityParser.c" /* yacc.c:1646 */
|
||||
#line 1511 "QuantityParser.c" /* yacc.c:1646 */
|
||||
default: break;
|
||||
}
|
||||
/* User semantic actions sometimes alter yychar, and that requires
|
||||
@@ -1708,5 +1735,5 @@ yyreturn:
|
||||
#endif
|
||||
return yyresult;
|
||||
}
|
||||
#line 72 "QuantityParser.y" /* yacc.c:1906 */
|
||||
#line 74 "QuantityParser.y" /* yacc.c:1906 */
|
||||
|
||||
|
||||
@@ -130,6 +130,7 @@ CGRP '\,'[0-9][0-9][0-9]
|
||||
"rad" yylval = Quantity::Radian; return UNIT; // radian
|
||||
"gon" yylval = Quantity::Gon; return UNIT; // gon
|
||||
|
||||
"1" yylval = Quantity(1.0); return ONE;
|
||||
{DIGIT}+"."?{DIGIT}*{EXPO}? { yylval = Quantity(num_change(yytext,'.',','));return NUM; }
|
||||
"."?{DIGIT}+{EXPO}? { yylval = Quantity(num_change(yytext,'.',','));return NUM; }
|
||||
{DIGIT}+","?{DIGIT}*{EXPO}? { yylval = Quantity(num_change(yytext,',','.'));return NUM; }
|
||||
|
||||
@@ -17,12 +17,13 @@
|
||||
%}
|
||||
|
||||
/* Bison declarations. */
|
||||
%token UNIT NUM MINUSSIGN
|
||||
%token UNIT ONE NUM MINUSSIGN
|
||||
%token ACOS ASIN ATAN ATAN2 COS EXP ABS MOD LOG LOG10 POW SIN SINH TAN TANH SQRT;
|
||||
%left MINUSSIGN '+'
|
||||
%left '*' '/'
|
||||
%left NEG /* negation--unary minus */
|
||||
%right '^' /* exponentiation */
|
||||
%left ONE NUM
|
||||
|
||||
|
||||
|
||||
@@ -37,6 +38,7 @@
|
||||
| quantity quantity { QuantResult = $1 + $2; }
|
||||
;
|
||||
num: NUM { $$ = $1; }
|
||||
| ONE { $$ = $1; }
|
||||
| num '+' num { $$ = Quantity($1.getValue() + $3.getValue()); }
|
||||
| num MINUSSIGN num { $$ = Quantity($1.getValue() - $3.getValue()); }
|
||||
| num '*' num { $$ = Quantity($1.getValue() * $3.getValue()); }
|
||||
@@ -60,6 +62,7 @@
|
||||
;
|
||||
|
||||
unit: UNIT { $$ = $1; }
|
||||
| ONE '/' unit { $$ = Quantity(1.0)/$3; }
|
||||
| unit '*' unit { $$ = $1 * $3; }
|
||||
| unit '/' unit { $$ = $1 / $3; }
|
||||
| unit '^' num { $$ = $1.pow ($3); }
|
||||
|
||||
Reference in New Issue
Block a user