changing ym to um

This commit is contained in:
jriegel 2013-12-10 23:04:46 +01:00
parent 2061c21115
commit 69b4dd0fac
3 changed files with 276 additions and 245 deletions

View File

@ -138,7 +138,7 @@ App.GuiUp = 0
# fill up unit definitions
App.Units.NanoMetre = App.Units.Quantity('nm')
App.Units.MicroMetre = App.Units.Quantity('ym')
App.Units.MicroMetre = App.Units.Quantity('um')
App.Units.MilliMetre = App.Units.Quantity('mm')
App.Units.CentiMetre = App.Units.Quantity('cm')
App.Units.DeciMetre = App.Units.Quantity('dm')
@ -147,7 +147,7 @@ App.Units.KiloMetre = App.Units.Quantity('km')
App.Units.Liter = App.Units.Quantity('l')
App.Units.MicroGram = App.Units.Quantity('yg')
App.Units.MicroGram = App.Units.Quantity('ug')
App.Units.MilliGram = App.Units.Quantity('mg')
App.Units.Gram = App.Units.Quantity('g')
App.Units.KiloGram = App.Units.Quantity('kg')
@ -164,7 +164,7 @@ App.Units.MegaAmpere = App.Units.Quantity('MA')
App.Units.Kelvin = App.Units.Quantity('K')
App.Units.MilliKelvin = App.Units.Quantity('mK')
App.Units.MicroKelvin = App.Units.Quantity('yK')
App.Units.MicroKelvin = App.Units.Quantity('uK')
App.Units.Mole = App.Units.Quantity('mol')

View File

@ -361,8 +361,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
#define YY_NUM_RULES 90
#define YY_END_OF_BUFFER 91
#define YY_NUM_RULES 94
#define YY_END_OF_BUFFER 95
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@ -370,25 +370,26 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static yyconst flex_int16_t yy_accept[156] =
static yyconst flex_int16_t yy_accept[166] =
{ 0,
0, 0, 0, 0, 91, 90, 4, 5, 33, 35,
6, 70, 71, 23, 90, 90, 61, 27, 90, 46,
90, 90, 90, 59, 1, 90, 90, 90, 73, 90,
17, 22, 90, 90, 14, 12, 90, 90, 90, 90,
20, 19, 90, 3, 2, 5, 70, 0, 70, 71,
64, 0, 26, 48, 0, 62, 50, 0, 60, 65,
0, 0, 0, 0, 31, 10, 0, 0, 0, 11,
0, 34, 0, 32, 25, 47, 0, 18, 13, 0,
40, 0, 24, 28, 49, 0, 16, 39, 9, 0,
7, 42, 72, 0, 0, 0, 0, 0, 43, 0,
0, 0, 0, 0, 95, 94, 4, 5, 36, 38,
6, 74, 75, 25, 94, 94, 65, 29, 94, 49,
94, 94, 94, 63, 1, 94, 94, 94, 77, 94,
19, 24, 94, 94, 15, 13, 94, 94, 94, 94,
22, 21, 94, 94, 94, 3, 2, 5, 74, 0,
74, 75, 68, 0, 28, 51, 0, 66, 53, 0,
64, 69, 0, 0, 0, 0, 34, 11, 0, 0,
0, 12, 0, 37, 0, 35, 27, 50, 0, 20,
14, 0, 43, 0, 26, 30, 52, 0, 18, 42,
10, 0, 7, 45, 76, 0, 0, 0, 0, 0,
0, 29, 0, 38, 15, 8, 0, 69, 53, 52,
0, 63, 80, 0, 0, 0, 78, 44, 66, 79,
68, 51, 58, 45, 41, 82, 0, 37, 21, 81,
30, 84, 57, 67, 85, 0, 87, 0, 0, 54,
74, 75, 76, 0, 0, 86, 89, 88, 36, 0,
77, 83, 55, 56, 0
46, 0, 0, 32, 0, 16, 41, 8, 0, 0,
73, 56, 55, 0, 67, 84, 0, 0, 0, 82,
47, 70, 83, 72, 54, 62, 48, 44, 86, 0,
40, 23, 85, 33, 88, 61, 71, 89, 0, 91,
0, 0, 31, 0, 17, 9, 57, 78, 79, 80,
0, 0, 90, 93, 92, 39, 0, 0, 81, 87,
58, 59, 0, 60, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@ -412,8 +413,8 @@ static yyconst flex_int32_t yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
51, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 52, 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,
@ -423,119 +424,126 @@ static yyconst flex_int32_t yy_ec[256] =
1, 1, 1, 1, 1
} ;
static yyconst flex_int32_t yy_meta[51] =
static yyconst flex_int32_t yy_meta[53] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 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
} ;
static yyconst flex_int16_t yy_base[157] =
static yyconst flex_int16_t yy_base[167] =
{ 0,
0, 0, 48, 49, 209, 210, 210, 205, 45, 210,
210, 52, 61, 210, 184, 185, 210, 210, 64, 167,
177, 163, 189, 157, 210, 50, 50, 28, 152, 154,
158, 210, 158, 78, 53, 110, 158, 145, 52, 167,
65, 55, 87, 210, 210, 190, 103, 126, 142, 151,
210, 165, 210, 210, 164, 210, 210, 147, 145, 210,
144, 147, 151, 158, 210, 210, 140, 138, 149, 210,
140, 210, 141, 210, 210, 210, 152, 210, 210, 143,
70, 144, 210, 210, 210, 136, 210, 64, 210, 89,
210, 210, 210, 128, 139, 142, 132, 127, 210, 130,
0, 0, 50, 51, 219, 220, 220, 215, 47, 220,
220, 54, 63, 220, 194, 195, 220, 220, 66, 177,
187, 173, 199, 167, 220, 52, 52, 30, 162, 164,
168, 220, 168, 80, 55, 112, 168, 155, 54, 177,
67, 57, 86, 73, 152, 220, 220, 199, 105, 128,
144, 153, 220, 174, 220, 220, 173, 220, 220, 156,
154, 220, 153, 156, 160, 167, 220, 220, 149, 147,
158, 220, 149, 220, 150, 220, 220, 220, 161, 220,
220, 152, 89, 152, 220, 220, 220, 144, 220, 68,
220, 92, 220, 220, 220, 136, 147, 150, 140, 135,
128, 210, 118, 210, 210, 210, 130, 155, 210, 210,
113, 210, 210, 105, 108, 107, 210, 210, 210, 210,
210, 210, 210, 210, 210, 134, 88, 210, 210, 210,
210, 210, 210, 210, 95, 82, 90, 75, 63, 210,
210, 210, 93, 77, 25, 210, 210, 210, 210, 15,
210, 210, 210, 210, 210, 52
220, 138, 136, 220, 129, 220, 220, 220, 148, 132,
162, 220, 220, 125, 220, 220, 123, 121, 119, 220,
220, 220, 220, 220, 220, 220, 220, 220, 141, 106,
220, 220, 220, 220, 220, 220, 220, 114, 101, 99,
85, 85, 220, 86, 220, 220, 220, 220, 220, 112,
101, 63, 220, 220, 220, 220, 45, 27, 220, 220,
220, 220, 17, 220, 220, 54
} ;
static yyconst flex_int16_t yy_def[157] =
static yyconst flex_int16_t yy_def[167] =
{ 0,
155, 1, 156, 156, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
165, 1, 166, 166, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 0, 155
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 0, 165
} ;
static yyconst flex_int16_t yy_nxt[261] =
static yyconst flex_int16_t yy_nxt[273] =
{ 0,
6, 7, 8, 9, 10, 11, 11, 12, 13, 13,
13, 13, 14, 15, 6, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 6, 26, 6, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 6, 40, 41, 42, 6, 6, 6, 43, 6,
6, 6, 44, 47, 47, 47, 47, 154, 69, 48,
47, 47, 47, 47, 49, 70, 48, 153, 49, 50,
50, 50, 50, 45, 45, 48, 53, 61, 62, 65,
81, 100, 48, 54, 55, 152, 93, 66, 101, 67,
75, 94, 82, 63, 64, 95, 68, 76, 77, 97,
39, 6, 40, 41, 42, 43, 6, 6, 44, 6,
6, 45, 6, 6, 46, 49, 49, 49, 49, 164,
71, 50, 49, 49, 49, 49, 51, 72, 50, 163,
51, 52, 52, 52, 52, 47, 47, 50, 55, 63,
64, 67, 83, 102, 50, 56, 57, 162, 95, 68,
103, 69, 77, 96, 84, 65, 66, 97, 70, 78,
128, 124, 129, 151, 102, 150, 98, 125, 103, 99,
78, 47, 47, 47, 47, 79, 104, 48, 130, 105,
149, 80, 83, 148, 106, 131, 147, 84, 146, 85,
145, 86, 107, 48, 108, 108, 108, 108, 108, 108,
108, 108, 87, 144, 88, 143, 142, 89, 141, 90,
47, 47, 47, 47, 49, 140, 48, 139, 49, 50,
50, 50, 50, 108, 108, 108, 108, 138, 137, 136,
135, 134, 48, 133, 132, 127, 126, 123, 122, 121,
120, 119, 118, 117, 116, 115, 114, 113, 112, 111,
110, 109, 46, 96, 92, 91, 74, 73, 72, 71,
79, 99, 107, 104, 131, 161, 132, 105, 100, 160,
108, 101, 80, 49, 49, 49, 49, 81, 106, 50,
127, 133, 159, 82, 85, 158, 128, 157, 134, 86,
156, 87, 155, 88, 110, 50, 111, 111, 111, 111,
111, 111, 111, 111, 89, 154, 90, 153, 152, 91,
151, 92, 49, 49, 49, 49, 51, 150, 50, 149,
51, 52, 52, 52, 52, 143, 148, 147, 142, 144,
111, 111, 111, 111, 50, 141, 140, 139, 138, 137,
145, 136, 135, 130, 129, 146, 126, 125, 124, 123,
122, 121, 120, 119, 118, 117, 116, 115, 114, 113,
60, 59, 58, 57, 56, 52, 51, 46, 155, 5,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155
112, 48, 109, 98, 94, 93, 76, 75, 74, 73,
62, 61, 60, 59, 58, 54, 53, 48, 165, 5,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165
} ;
static yyconst flex_int16_t yy_chk[261] =
static yyconst flex_int16_t yy_chk[273] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3, 4, 156, 9, 9, 9, 9, 150, 28, 9,
12, 12, 12, 12, 13, 28, 12, 145, 13, 13,
13, 13, 13, 3, 4, 9, 19, 26, 26, 27,
35, 42, 12, 19, 19, 144, 39, 27, 42, 27,
34, 39, 35, 26, 26, 39, 27, 34, 34, 41,
1, 1, 3, 4, 166, 9, 9, 9, 9, 163,
28, 9, 12, 12, 12, 12, 13, 28, 12, 158,
13, 13, 13, 13, 13, 3, 4, 9, 19, 26,
26, 27, 35, 42, 12, 19, 19, 157, 39, 27,
42, 27, 34, 39, 35, 26, 26, 39, 27, 34,
88, 81, 88, 143, 43, 139, 41, 81, 43, 41,
34, 47, 47, 47, 47, 34, 43, 47, 90, 43,
138, 34, 36, 137, 43, 90, 136, 36, 135, 36,
127, 36, 48, 47, 48, 48, 48, 48, 107, 107,
107, 107, 36, 126, 36, 116, 115, 36, 114, 36,
49, 49, 49, 49, 50, 111, 49, 103, 50, 50,
50, 50, 50, 108, 108, 108, 108, 101, 100, 98,
97, 96, 49, 95, 94, 86, 82, 80, 77, 73,
71, 69, 68, 67, 64, 63, 62, 61, 59, 58,
55, 52, 46, 40, 38, 37, 33, 31, 30, 29,
34, 41, 44, 43, 90, 152, 90, 43, 41, 151,
44, 41, 34, 49, 49, 49, 49, 34, 43, 49,
83, 92, 150, 34, 36, 144, 83, 142, 92, 36,
141, 36, 140, 36, 50, 49, 50, 50, 50, 50,
110, 110, 110, 110, 36, 139, 36, 138, 130, 36,
129, 36, 51, 51, 51, 51, 52, 119, 51, 118,
52, 52, 52, 52, 52, 109, 117, 114, 105, 109,
111, 111, 111, 111, 51, 103, 102, 100, 99, 98,
109, 97, 96, 88, 84, 109, 82, 79, 75, 73,
71, 70, 69, 66, 65, 64, 63, 61, 60, 57,
24, 23, 22, 21, 20, 16, 15, 8, 5, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155
54, 48, 45, 40, 38, 37, 33, 31, 30, 29,
24, 23, 22, 21, 20, 16, 15, 8, 5, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 165
} ;
static yy_state_type yy_last_accepting_state;
@ -566,7 +574,7 @@ char *yytext;
/* the manual says "somewhat more optimized" */
/* no support for include files is planned */
#line 570 "QuantityLexer.c"
#line 578 "QuantityLexer.c"
#define INITIAL 0
#define C_COMMENT 1
@ -750,7 +758,7 @@ YY_DECL
#line 28 "QuantityParser.l"
#line 754 "QuantityLexer.c"
#line 762 "QuantityLexer.c"
if ( !(yy_init) )
{
@ -803,13 +811,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 >= 156 )
if ( yy_current_state >= 166 )
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 != 155 );
while ( yy_current_state != 165 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@ -873,414 +881,434 @@ yylval = Quantity::MicroMetre; return UNIT; // micro meter
case 9:
YY_RULE_SETUP
#line 42 "QuantityParser.l"
yylval = Quantity::MilliMetre; return UNIT; // milli meter (internal standard length)
yylval = Quantity::MicroMetre; return UNIT; // micro meter (greek micro in UTF8)
YY_BREAK
case 10:
YY_RULE_SETUP
#line 43 "QuantityParser.l"
yylval = Quantity::CentiMetre; return UNIT; // centi meter
yylval = Quantity::MilliMetre; return UNIT; // milli meter (internal standard length)
YY_BREAK
case 11:
YY_RULE_SETUP
#line 44 "QuantityParser.l"
yylval = Quantity::DeciMetre; return UNIT; // deci meter
yylval = Quantity::CentiMetre; return UNIT; // centi meter
YY_BREAK
case 12:
YY_RULE_SETUP
#line 45 "QuantityParser.l"
yylval = Quantity::Metre; return UNIT; // metre
yylval = Quantity::DeciMetre; return UNIT; // deci meter
YY_BREAK
case 13:
YY_RULE_SETUP
#line 46 "QuantityParser.l"
yylval = Quantity::KiloMetre; return UNIT; // kilo meter
yylval = Quantity::Metre; return UNIT; // metre
YY_BREAK
case 14:
YY_RULE_SETUP
#line 48 "QuantityParser.l"
yylval = Quantity::Liter; return UNIT; // Liter dm^3
#line 47 "QuantityParser.l"
yylval = Quantity::KiloMetre; return UNIT; // kilo meter
YY_BREAK
case 15:
YY_RULE_SETUP
#line 50 "QuantityParser.l"
yylval = Quantity::MicroGram; return UNIT; // micro gram
#line 49 "QuantityParser.l"
yylval = Quantity::Liter; return UNIT; // Liter dm^3
YY_BREAK
case 16:
YY_RULE_SETUP
#line 51 "QuantityParser.l"
yylval = Quantity::MilliGram; return UNIT; // milli gram
yylval = Quantity::MicroGram; return UNIT; // micro gram
YY_BREAK
case 17:
YY_RULE_SETUP
#line 52 "QuantityParser.l"
yylval = Quantity::Gram; return UNIT; // gram
yylval = Quantity::MicroGram; return UNIT; // micro gram
YY_BREAK
case 18:
YY_RULE_SETUP
#line 53 "QuantityParser.l"
yylval = Quantity::KiloGram; return UNIT; // kilo gram (internal standard for mass)
yylval = Quantity::MilliGram; return UNIT; // milli gram
YY_BREAK
case 19:
YY_RULE_SETUP
#line 54 "QuantityParser.l"
yylval = Quantity::Ton; return UNIT; // Metric Tonne
yylval = Quantity::Gram; return UNIT; // gram
YY_BREAK
case 20:
YY_RULE_SETUP
#line 56 "QuantityParser.l"
yylval = Quantity::Second; return UNIT; // second (internal standard time)
#line 55 "QuantityParser.l"
yylval = Quantity::KiloGram; return UNIT; // kilo gram (internal standard for mass)
YY_BREAK
case 21:
YY_RULE_SETUP
#line 57 "QuantityParser.l"
yylval = Quantity::Minute; return UNIT; // minute
#line 56 "QuantityParser.l"
yylval = Quantity::Ton; return UNIT; // Metric Tonne
YY_BREAK
case 22:
YY_RULE_SETUP
#line 58 "QuantityParser.l"
yylval = Quantity::Hour; return UNIT; // hour
yylval = Quantity::Second; return UNIT; // second (internal standard time)
YY_BREAK
case 23:
YY_RULE_SETUP
#line 60 "QuantityParser.l"
yylval = Quantity::Ampere; return UNIT; // Ampere (internal standard electric current)
#line 59 "QuantityParser.l"
yylval = Quantity::Minute; return UNIT; // minute
YY_BREAK
case 24:
YY_RULE_SETUP
#line 61 "QuantityParser.l"
yylval = Quantity::MilliAmpere; return UNIT; // milli Ampere
#line 60 "QuantityParser.l"
yylval = Quantity::Hour; return UNIT; // hour
YY_BREAK
case 25:
YY_RULE_SETUP
#line 62 "QuantityParser.l"
yylval = Quantity::KiloAmpere; return UNIT; // kilo Ampere
yylval = Quantity::Ampere; return UNIT; // Ampere (internal standard electric current)
YY_BREAK
case 26:
YY_RULE_SETUP
#line 63 "QuantityParser.l"
yylval = Quantity::MegaAmpere; return UNIT; // Mega Ampere
yylval = Quantity::MilliAmpere; return UNIT; // milli Ampere
YY_BREAK
case 27:
YY_RULE_SETUP
#line 65 "QuantityParser.l"
yylval = Quantity::Kelvin; return UNIT; // Kelvin (internal standard thermodynamic temperature)
#line 64 "QuantityParser.l"
yylval = Quantity::KiloAmpere; return UNIT; // kilo Ampere
YY_BREAK
case 28:
YY_RULE_SETUP
#line 66 "QuantityParser.l"
yylval = Quantity::MilliKelvin; return UNIT; // Kelvin
#line 65 "QuantityParser.l"
yylval = Quantity::MegaAmpere; return UNIT; // Mega Ampere
YY_BREAK
case 29:
YY_RULE_SETUP
#line 67 "QuantityParser.l"
yylval = Quantity::MicroKelvin; return UNIT; // Kelvin
yylval = Quantity::Kelvin; return UNIT; // Kelvin (internal standard thermodynamic temperature)
YY_BREAK
case 30:
YY_RULE_SETUP
#line 69 "QuantityParser.l"
yylval = Quantity::Mole; return UNIT; // Mole (internal standard amount of substance)
#line 68 "QuantityParser.l"
yylval = Quantity::MilliKelvin; return UNIT; // Kelvin
YY_BREAK
case 31:
YY_RULE_SETUP
#line 71 "QuantityParser.l"
yylval = Quantity::Candela; return UNIT; // Candela (internal standard luminous intensity)
#line 69 "QuantityParser.l"
yylval = Quantity::MicroKelvin; return UNIT; // Kelvin
YY_BREAK
case 32:
YY_RULE_SETUP
#line 73 "QuantityParser.l"
yylval = Quantity::Inch; return UNIT; // inch
#line 70 "QuantityParser.l"
yylval = Quantity::MicroKelvin; return UNIT; // Kelvin
YY_BREAK
case 33:
YY_RULE_SETUP
#line 74 "QuantityParser.l"
yylval = Quantity::Inch; return UNIT; // inch
#line 72 "QuantityParser.l"
yylval = Quantity::Mole; return UNIT; // Mole (internal standard amount of substance)
YY_BREAK
case 34:
YY_RULE_SETUP
#line 75 "QuantityParser.l"
yylval = Quantity::Foot; return UNIT; // foot
#line 74 "QuantityParser.l"
yylval = Quantity::Candela; return UNIT; // Candela (internal standard luminous intensity)
YY_BREAK
case 35:
YY_RULE_SETUP
#line 76 "QuantityParser.l"
yylval = Quantity::Foot; return UNIT; // foot
yylval = Quantity::Inch; return UNIT; // inch
YY_BREAK
case 36:
YY_RULE_SETUP
#line 77 "QuantityParser.l"
yylval = Quantity::Thou; return UNIT; // thou (in/1000)
yylval = Quantity::Inch; return UNIT; // inch
YY_BREAK
case 37:
YY_RULE_SETUP
#line 78 "QuantityParser.l"
yylval = Quantity::Thou; return UNIT; // mil (the thou in US)
yylval = Quantity::Foot; return UNIT; // foot
YY_BREAK
case 38:
YY_RULE_SETUP
#line 79 "QuantityParser.l"
yylval = Quantity::Yard; return UNIT; // yard
yylval = Quantity::Foot; return UNIT; // foot
YY_BREAK
case 39:
YY_RULE_SETUP
#line 80 "QuantityParser.l"
yylval = Quantity::Mile; return UNIT; // mile
yylval = Quantity::Thou; return UNIT; // thou (in/1000)
YY_BREAK
case 40:
YY_RULE_SETUP
#line 84 "QuantityParser.l"
yylval = Quantity::Pound; return UNIT; // pound
#line 81 "QuantityParser.l"
yylval = Quantity::Thou; return UNIT; // mil (the thou in US)
YY_BREAK
case 41:
YY_RULE_SETUP
#line 85 "QuantityParser.l"
yylval = Quantity::Pound; return UNIT; // pound
#line 82 "QuantityParser.l"
yylval = Quantity::Yard; return UNIT; // yard
YY_BREAK
case 42:
YY_RULE_SETUP
#line 86 "QuantityParser.l"
yylval = Quantity::Ounce; return UNIT; // ounce
#line 83 "QuantityParser.l"
yylval = Quantity::Mile; return UNIT; // mile
YY_BREAK
case 43:
YY_RULE_SETUP
#line 87 "QuantityParser.l"
yylval = Quantity::Stone; return UNIT; // Stone
yylval = Quantity::Pound; return UNIT; // pound
YY_BREAK
case 44:
YY_RULE_SETUP
#line 88 "QuantityParser.l"
yylval = Quantity::Hundredweights; return UNIT; // hundredweights
yylval = Quantity::Pound; return UNIT; // pound
YY_BREAK
case 45:
YY_RULE_SETUP
#line 90 "QuantityParser.l"
yylval = Quantity::PoundForce; return UNIT; // pound
#line 89 "QuantityParser.l"
yylval = Quantity::Ounce; return UNIT; // ounce
YY_BREAK
case 46:
YY_RULE_SETUP
#line 92 "QuantityParser.l"
yylval = Quantity::Newton; return UNIT; // Newton (kg*m/s^2)
#line 90 "QuantityParser.l"
yylval = Quantity::Stone; return UNIT; // Stone
YY_BREAK
case 47:
YY_RULE_SETUP
#line 93 "QuantityParser.l"
yylval = Quantity::KiloNewton; return UNIT; // Newton
#line 91 "QuantityParser.l"
yylval = Quantity::Hundredweights; return UNIT; // hundredweights
YY_BREAK
case 48:
YY_RULE_SETUP
#line 94 "QuantityParser.l"
yylval = Quantity::MegaNewton; return UNIT; // Newton
#line 93 "QuantityParser.l"
yylval = Quantity::PoundForce; return UNIT; // pound
YY_BREAK
case 49:
YY_RULE_SETUP
#line 95 "QuantityParser.l"
yylval = Quantity::MilliNewton; return UNIT; // Newton
yylval = Quantity::Newton; return UNIT; // Newton (kg*m/s^2)
YY_BREAK
case 50:
YY_RULE_SETUP
#line 97 "QuantityParser.l"
yylval = Quantity::Pascal; return UNIT; // Pascal (kg/m*s^2 or N/m^2)
#line 96 "QuantityParser.l"
yylval = Quantity::KiloNewton; return UNIT; // Newton
YY_BREAK
case 51:
YY_RULE_SETUP
#line 98 "QuantityParser.l"
yylval = Quantity::KiloPascal; return UNIT; // Pascal
#line 97 "QuantityParser.l"
yylval = Quantity::MegaNewton; return UNIT; // Newton
YY_BREAK
case 52:
YY_RULE_SETUP
#line 99 "QuantityParser.l"
yylval = Quantity::MegaPascal; return UNIT; // Pascal
#line 98 "QuantityParser.l"
yylval = Quantity::MilliNewton; return UNIT; // Newton
YY_BREAK
case 53:
YY_RULE_SETUP
#line 100 "QuantityParser.l"
yylval = Quantity::GigaPascal; return UNIT; // Pascal
yylval = Quantity::Pascal; return UNIT; // Pascal (kg/m*s^2 or N/m^2)
YY_BREAK
case 54:
YY_RULE_SETUP
#line 102 "QuantityParser.l"
yylval = Quantity::Torr; return UNIT; // portion of Pascal ( 101325/760 )
#line 101 "QuantityParser.l"
yylval = Quantity::KiloPascal; return UNIT; // Pascal
YY_BREAK
case 55:
YY_RULE_SETUP
#line 103 "QuantityParser.l"
yylval = Quantity::mTorr; return UNIT; //
#line 102 "QuantityParser.l"
yylval = Quantity::MegaPascal; return UNIT; // Pascal
YY_BREAK
case 56:
YY_RULE_SETUP
#line 104 "QuantityParser.l"
yylval = Quantity::yTorr; return UNIT; //
#line 103 "QuantityParser.l"
yylval = Quantity::GigaPascal; return UNIT; // Pascal
YY_BREAK
case 57:
YY_RULE_SETUP
#line 106 "QuantityParser.l"
yylval = Quantity::PSI; return UNIT; // pounds/in^2
#line 105 "QuantityParser.l"
yylval = Quantity::Torr; return UNIT; // portion of Pascal ( 101325/760 )
YY_BREAK
case 58:
YY_RULE_SETUP
#line 107 "QuantityParser.l"
yylval = Quantity::KSI; return UNIT; // 1000 x pounds/in^2
#line 106 "QuantityParser.l"
yylval = Quantity::mTorr; return UNIT; //
YY_BREAK
case 59:
YY_RULE_SETUP
#line 109 "QuantityParser.l"
yylval = Quantity::Watt; return UNIT; // Watt (kg*m^2/s^3)
#line 107 "QuantityParser.l"
yylval = Quantity::yTorr; return UNIT; //
YY_BREAK
case 60:
YY_RULE_SETUP
#line 110 "QuantityParser.l"
yylval = Quantity::VoltAmpere; return UNIT; // VoltAmpere (kg*m^2/s^3)
#line 108 "QuantityParser.l"
yylval = Quantity::yTorr; return UNIT; //
YY_BREAK
case 61:
YY_RULE_SETUP
#line 112 "QuantityParser.l"
yylval = Quantity::Joule; return UNIT; // Joule (kg*m^2/s^2)
#line 110 "QuantityParser.l"
yylval = Quantity::PSI; return UNIT; // pounds/in^2
YY_BREAK
case 62:
YY_RULE_SETUP
#line 113 "QuantityParser.l"
yylval = Quantity::NewtonMeter; return UNIT; // N*m = Joule
#line 111 "QuantityParser.l"
yylval = Quantity::KSI; return UNIT; // 1000 x pounds/in^2
YY_BREAK
case 63:
YY_RULE_SETUP
#line 114 "QuantityParser.l"
yylval = Quantity::VoltAmpereSecond; return UNIT; // V*A*s = Joule
#line 113 "QuantityParser.l"
yylval = Quantity::Watt; return UNIT; // Watt (kg*m^2/s^3)
YY_BREAK
case 64:
YY_RULE_SETUP
#line 115 "QuantityParser.l"
yylval = Quantity::WattSecond; return UNIT; //
#line 114 "QuantityParser.l"
yylval = Quantity::VoltAmpere; return UNIT; // VoltAmpere (kg*m^2/s^3)
YY_BREAK
case 65:
YY_RULE_SETUP
#line 116 "QuantityParser.l"
yylval = Quantity::WattSecond; return UNIT; // W*s = Joule
yylval = Quantity::Joule; return UNIT; // Joule (kg*m^2/s^2)
YY_BREAK
case 66:
YY_RULE_SETUP
#line 118 "QuantityParser.l"
yylval = Quantity::Degree; return UNIT; // degree (internal standard angle)
#line 117 "QuantityParser.l"
yylval = Quantity::NewtonMeter; return UNIT; // N*m = Joule
YY_BREAK
case 67:
YY_RULE_SETUP
#line 119 "QuantityParser.l"
yylval = Quantity::Radian; return UNIT; // radian
#line 118 "QuantityParser.l"
yylval = Quantity::VoltAmpereSecond; return UNIT; // V*A*s = Joule
YY_BREAK
case 68:
YY_RULE_SETUP
#line 120 "QuantityParser.l"
yylval = Quantity::Gon; return UNIT; // gon
#line 119 "QuantityParser.l"
yylval = Quantity::WattSecond; return UNIT; //
YY_BREAK
case 69:
YY_RULE_SETUP
#line 122 "QuantityParser.l"
{for(char* c=yytext;*c!='\0';c++)if(*c==',')*c='.'; yylval = atof( yytext ); return NUM;}
#line 120 "QuantityParser.l"
yylval = Quantity::WattSecond; return UNIT; // W*s = Joule
YY_BREAK
case 70:
YY_RULE_SETUP
#line 123 "QuantityParser.l"
{for(char* c=yytext;*c!='\0';c++)if(*c==',')*c='.'; yylval = atof( yytext ); return NUM;}
#line 122 "QuantityParser.l"
yylval = Quantity::Degree; return UNIT; // degree (internal standard angle)
YY_BREAK
case 71:
YY_RULE_SETUP
#line 124 "QuantityParser.l"
{yylval = atof( yytext ); return NUM;}
#line 123 "QuantityParser.l"
yylval = Quantity::Radian; return UNIT; // radian
YY_BREAK
case 72:
YY_RULE_SETUP
#line 126 "QuantityParser.l"
{yylval = M_PI ; return NUM;} // constant pi
#line 124 "QuantityParser.l"
yylval = Quantity::Gon; return UNIT; // gon
YY_BREAK
case 73:
YY_RULE_SETUP
#line 127 "QuantityParser.l"
{yylval = M_E ; return NUM;} // constant e
#line 126 "QuantityParser.l"
{for(char* c=yytext;*c!='\0';c++)if(*c==',')*c='.'; yylval = atof( yytext ); return NUM;}
YY_BREAK
case 74:
YY_RULE_SETUP
#line 129 "QuantityParser.l"
return ACOS;
#line 127 "QuantityParser.l"
{for(char* c=yytext;*c!='\0';c++)if(*c==',')*c='.'; yylval = atof( yytext ); return NUM;}
YY_BREAK
case 75:
YY_RULE_SETUP
#line 130 "QuantityParser.l"
return ASIN;
#line 128 "QuantityParser.l"
{yylval = atof( yytext ); return NUM;}
YY_BREAK
case 76:
YY_RULE_SETUP
#line 131 "QuantityParser.l"
return ATAN;
#line 130 "QuantityParser.l"
{yylval = M_PI ; return NUM;} // constant pi
YY_BREAK
case 77:
YY_RULE_SETUP
#line 132 "QuantityParser.l"
return ATAN2;
#line 131 "QuantityParser.l"
{yylval = M_E ; return NUM;} // constant e
YY_BREAK
case 78:
YY_RULE_SETUP
#line 133 "QuantityParser.l"
return COS;
return ACOS;
YY_BREAK
case 79:
YY_RULE_SETUP
#line 134 "QuantityParser.l"
return EXP;
return ASIN;
YY_BREAK
case 80:
YY_RULE_SETUP
#line 135 "QuantityParser.l"
return ABS;
return ATAN;
YY_BREAK
case 81:
YY_RULE_SETUP
#line 136 "QuantityParser.l"
return MOD;
return ATAN2;
YY_BREAK
case 82:
YY_RULE_SETUP
#line 137 "QuantityParser.l"
return LOG;
return COS;
YY_BREAK
case 83:
YY_RULE_SETUP
#line 138 "QuantityParser.l"
return LOG10;
return EXP;
YY_BREAK
case 84:
YY_RULE_SETUP
#line 139 "QuantityParser.l"
return POW;
return ABS;
YY_BREAK
case 85:
YY_RULE_SETUP
#line 140 "QuantityParser.l"
return SIN;
return MOD;
YY_BREAK
case 86:
YY_RULE_SETUP
#line 141 "QuantityParser.l"
return SINH;
return LOG;
YY_BREAK
case 87:
YY_RULE_SETUP
#line 142 "QuantityParser.l"
return TAN;
return LOG10;
YY_BREAK
case 88:
YY_RULE_SETUP
#line 143 "QuantityParser.l"
return TANH;
return POW;
YY_BREAK
case 89:
YY_RULE_SETUP
#line 144 "QuantityParser.l"
return SQRT;
return SIN;
YY_BREAK
case 90:
YY_RULE_SETUP
#line 145 "QuantityParser.l"
return SINH;
YY_BREAK
case 91:
YY_RULE_SETUP
#line 146 "QuantityParser.l"
return TAN;
YY_BREAK
case 92:
YY_RULE_SETUP
#line 147 "QuantityParser.l"
return TANH;
YY_BREAK
case 93:
YY_RULE_SETUP
#line 148 "QuantityParser.l"
return SQRT;
YY_BREAK
case 94:
YY_RULE_SETUP
#line 150 "QuantityParser.l"
ECHO;
YY_BREAK
#line 1284 "QuantityLexer.c"
#line 1312 "QuantityLexer.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(C_COMMENT):
yyterminate();
@ -1574,7 +1602,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 >= 156 )
if ( yy_current_state >= 166 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@ -1602,11 +1630,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 >= 156 )
if ( yy_current_state >= 166 )
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 == 155);
yy_is_jam = (yy_current_state == 165);
return yy_is_jam ? 0 : yy_current_state;
}
@ -2239,4 +2267,4 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
#line 146 "QuantityParser.l"
#line 150 "QuantityParser.l"

View File

@ -39,7 +39,7 @@ ID [a-z][a-z0-9]*
"nm" yylval = Quantity::NanoMetre; return UNIT; // nano meter
"ym" yylval = Quantity::MicroMetre; return UNIT; // micro meter
"\xC2\xB5m"yylval = Quantity::MicroMetre; return UNIT; // micro meter (greek micro in UTF8)
"\xC2\xB5m" yylval = Quantity::MicroMetre; return UNIT; // micro meter (greek micro in UTF8)
"mm" yylval = Quantity::MilliMetre; return UNIT; // milli meter (internal standard length)
"cm" yylval = Quantity::CentiMetre; return UNIT; // centi meter
"dm" yylval = Quantity::DeciMetre; return UNIT; // deci meter
@ -48,7 +48,8 @@ ID [a-z][a-z0-9]*
"l" yylval = Quantity::Liter; return UNIT; // Liter dm^3
"yg" yylval = Quantity::MicroGram; return UNIT; // micro gram
"ug" yylval = Quantity::MicroGram; return UNIT; // micro gram
"\xC2\xB5g" yylval = Quantity::MicroGram; return UNIT; // micro gram
"mg" yylval = Quantity::MilliGram; return UNIT; // milli gram
"g" yylval = Quantity::Gram; return UNIT; // gram
"kg" yylval = Quantity::KiloGram; return UNIT; // kilo gram (internal standard for mass)
@ -65,7 +66,8 @@ ID [a-z][a-z0-9]*
"K" yylval = Quantity::Kelvin; return UNIT; // Kelvin (internal standard thermodynamic temperature)
"mK" yylval = Quantity::MilliKelvin; return UNIT; // Kelvin
"yK" yylval = Quantity::MicroKelvin; return UNIT; // Kelvin
"\xC2\xB5K" yylval = Quantity::MicroKelvin; return UNIT; // Kelvin
"uK" yylval = Quantity::MicroKelvin; return UNIT; // Kelvin
"mol" yylval = Quantity::Mole; return UNIT; // Mole (internal standard amount of substance)
@ -102,7 +104,8 @@ ID [a-z][a-z0-9]*
"Torr" yylval = Quantity::Torr; return UNIT; // portion of Pascal ( 101325/760 )
"mTorr" yylval = Quantity::mTorr; return UNIT; //
"yTorr" yylval = Quantity::yTorr; return UNIT; //
"uTorr" yylval = Quantity::yTorr; return UNIT; //
"\xC2\xB5Torr" yylval = Quantity::yTorr; return UNIT; //
"psi" yylval = Quantity::PSI; return UNIT; // pounds/in^2
"ksi" yylval = Quantity::KSI; return UNIT; // 1000 x pounds/in^2