Index: trunk/src_plugins/drc_query/drc_query.c =================================================================== --- trunk/src_plugins/drc_query/drc_query.c (revision 30857) +++ trunk/src_plugins/drc_query/drc_query.c (revision 30858) @@ -125,6 +125,7 @@ case PCB_QRY_DRC_GRP2: pcb_view_append_obj(violation, 1, obj); break; case PCB_QRY_DRC_EXPECT: expv = &expv_; expv_ = load_obj_const(cnst); break; case PCB_QRY_DRC_MEASURE: mesv = &mesv_; mesv_ = load_obj_const(cnst); break; + case PCB_QRY_DRC_TEXT: pcb_view_append_text(violation, (char *)cnst); case PCB_QRY_DRC_invalid: break; } Index: trunk/src_plugins/query/fnc_list.c =================================================================== --- trunk/src_plugins/query/fnc_list.c (revision 30857) +++ trunk/src_plugins/query/fnc_list.c (revision 30858) @@ -62,6 +62,8 @@ if ((val->type != PCBQ_VT_COORD) && (val->type != PCBQ_VT_LONG) && (val->type != PCBQ_VT_DOUBLE)) return -1; break; + case PCB_QRY_DRC_TEXT: + break; /* accept anything */ default: return -1; } @@ -70,10 +72,27 @@ res->type = PCBQ_VT_LST; vtp0_init(&res->data.lst); for(n = 0; n < argc; n+=2) { + pcb_qry_drc_ctrl_t ctrl = pcb_qry_drc_ctrl_decode(argv[n].data.obj); pcb_qry_val_t *val = &argv[n+1]; pcb_obj_qry_const_t *tmp; - switch(val->type) { + if (ctrl == PCB_QRY_DRC_TEXT) { + char *str = "", buff[128]; + switch(val->type) { + case PCBQ_VT_VOID: str = ""; break; + case PCBQ_VT_OBJ: str = ""; break; + case PCBQ_VT_LST: str = ""; break; + case PCBQ_VT_COORD: pcb_snprintf(buff, sizeof(buff), "%mH$", argv[n+1].data.crd); break; + case PCBQ_VT_LONG: pcb_snprintf(buff, sizeof(buff), "%ld", argv[n+1].data.lng); break; + case PCBQ_VT_DOUBLE: pcb_snprintf(buff, sizeof(buff), "%f", argv[n+1].data.dbl); break; + case PCBQ_VT_STRING: str = (char *)argv[n+1].data.str; break; + } + str = pcb_strdup(str == NULL ? "" : str); + vtp0_append(&res->data.lst, argv[n].data.obj); + vtp0_append(&res->data.lst, str); + vtp0_append(&ectx->autofree, str); + } + else switch(val->type) { case PCBQ_VT_OBJ: vtp0_append(&res->data.lst, argv[n].data.obj); vtp0_append(&res->data.lst, argv[n+1].data.obj); Index: trunk/src_plugins/query/query.c =================================================================== --- trunk/src_plugins/query/query.c (revision 30857) +++ trunk/src_plugins/query/query.c (revision 30858) @@ -46,6 +46,8 @@ /******** tree helper ********/ +pcb_any_obj_t pcb_qry_drc_ctrl[PCB_QRY_DRC_invalid]; + const char *type_name[PCBQ_nodetype_max] = { "PCBQ_RULE", "PCBQ_RNAME", Index: trunk/src_plugins/query/query.h =================================================================== --- trunk/src_plugins/query/query.h (revision 30857) +++ trunk/src_plugins/query/query.h (revision 30858) @@ -204,10 +204,11 @@ PCB_QRY_DRC_GRP2, PCB_QRY_DRC_EXPECT, PCB_QRY_DRC_MEASURE, + PCB_QRY_DRC_TEXT, PCB_QRY_DRC_invalid } pcb_qry_drc_ctrl_t; -pcb_any_obj_t pcb_qry_drc_ctrl[PCB_QRY_DRC_invalid]; +extern pcb_any_obj_t pcb_qry_drc_ctrl[PCB_QRY_DRC_invalid]; #define pcb_qry_drc_ctrl_decode(obj) \ ((((obj) >= &pcb_qry_drc_ctrl[0]) && ((obj) < &pcb_qry_drc_ctrl[PCB_QRY_DRC_invalid])) \ Index: trunk/src_plugins/query/query_l.c =================================================================== --- trunk/src_plugins/query/query_l.c (revision 30857) +++ trunk/src_plugins/query/query_l.c (revision 30858) @@ -611,8 +611,8 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 73 -#define YY_END_OF_BUFFER 74 +#define YY_NUM_RULES 74 +#define YY_END_OF_BUFFER 75 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -620,36 +620,36 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[257] = +static const flex_int16_t yy_accept[261] = { 0, - 71, 71, 74, 73, 72, 71, 69, 73, 69, 73, - 73, 69, 69, 65, 69, 73, 69, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 73, 68, 68, 68, 68, - 68, 52, 68, 68, 68, 68, 68, 73, 71, 62, - 0, 1, 0, 60, 0, 2, 66, 67, 65, 64, - 61, 63, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 33, 68, 28, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 70, 9, 68, 54, 68, 68, 68, 68, 68, 51, + 72, 72, 75, 74, 73, 72, 70, 74, 70, 74, + 74, 70, 70, 66, 70, 74, 70, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 74, 69, 69, 69, 69, + 69, 53, 69, 69, 69, 69, 69, 74, 72, 63, + 0, 1, 0, 61, 0, 2, 67, 68, 66, 65, + 62, 64, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 33, 69, 28, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 71, 9, 69, 55, 69, 69, 69, 69, 69, 52, - 55, 8, 68, 68, 53, 59, 0, 67, 16, 68, - 68, 68, 43, 68, 68, 17, 68, 68, 68, 68, - 68, 68, 23, 32, 68, 68, 68, 68, 18, 68, - 68, 68, 34, 68, 68, 29, 68, 68, 68, 68, - 3, 68, 56, 68, 68, 0, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 13, 40, 42, 68, - 68, 68, 20, 39, 21, 14, 26, 68, 68, 68, - 57, 68, 6, 5, 58, 0, 68, 68, 68, 68, - 68, 68, 30, 68, 68, 24, 68, 68, 41, 68, - 68, 68, 68, 68, 10, 68, 0, 35, 68, 38, + 56, 8, 69, 69, 54, 60, 0, 68, 16, 69, + 69, 69, 43, 69, 69, 17, 69, 69, 69, 69, + 69, 69, 23, 32, 69, 69, 69, 69, 18, 69, + 69, 69, 34, 69, 69, 29, 69, 69, 69, 69, + 3, 69, 57, 69, 69, 0, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 13, 40, 42, + 69, 69, 69, 20, 39, 21, 14, 26, 69, 69, + 69, 58, 69, 6, 5, 59, 0, 69, 69, 69, + 69, 69, 69, 69, 30, 69, 69, 24, 69, 69, + 41, 69, 69, 69, 69, 69, 10, 69, 0, 35, - 68, 68, 68, 36, 68, 68, 68, 68, 68, 68, - 68, 68, 4, 68, 0, 68, 68, 45, 46, 68, - 68, 68, 68, 68, 68, 15, 68, 68, 27, 7, - 0, 44, 68, 68, 37, 68, 25, 68, 19, 68, - 68, 0, 47, 68, 31, 68, 68, 68, 0, 48, - 11, 12, 22, 49, 50, 0 + 69, 38, 69, 69, 69, 69, 36, 69, 69, 69, + 69, 69, 69, 69, 69, 4, 69, 0, 69, 69, + 45, 46, 69, 49, 69, 69, 69, 69, 69, 15, + 69, 69, 27, 7, 0, 44, 69, 69, 37, 69, + 25, 69, 19, 69, 69, 0, 47, 69, 31, 69, + 69, 69, 0, 48, 11, 12, 22, 50, 51, 0 } ; static const YY_CHAR yy_ec[256] = @@ -695,71 +695,73 @@ 2, 2, 1 } ; -static const flex_int16_t yy_base[260] = +static const flex_int16_t yy_base[264] = { 0, - 0, 0, 294, 295, 295, 61, 277, 287, 246, 283, - 281, 295, 54, 58, 272, 271, 270, 251, 252, 251, - 40, 0, 264, 258, 249, 55, 58, 55, 55, 61, - 261, 57, 63, 252, 255, 273, 72, 223, 223, 220, - 38, 39, 220, 261, 212, 220, 216, 204, 87, 295, - 261, 295, 205, 295, 256, 295, 87, 91, 95, 295, - 295, 295, 0, 243, 73, 229, 241, 240, 230, 219, - 75, 217, 225, 220, 234, 217, 0, 229, 0, 91, - 222, 214, 213, 219, 228, 207, 212, 207, 208, 207, - 295, 295, 185, 0, 197, 70, 182, 182, 186, 0, + 0, 0, 298, 299, 299, 61, 281, 291, 250, 287, + 285, 299, 54, 58, 276, 275, 274, 255, 256, 255, + 40, 0, 268, 262, 253, 55, 58, 55, 55, 61, + 265, 57, 63, 256, 259, 277, 72, 227, 227, 224, + 38, 39, 224, 265, 216, 224, 220, 208, 87, 299, + 265, 299, 209, 299, 260, 299, 87, 91, 95, 299, + 299, 299, 0, 247, 73, 233, 245, 244, 234, 223, + 75, 221, 229, 224, 238, 221, 0, 233, 0, 91, + 226, 218, 217, 223, 232, 211, 216, 211, 212, 211, + 299, 299, 189, 0, 201, 70, 186, 186, 190, 0, - 0, 295, 185, 177, 0, 295, 186, 104, 0, 197, - 201, 198, 0, 97, 195, 0, 207, 202, 205, 204, - 197, 199, 0, 0, 188, 186, 181, 192, 0, 191, - 198, 181, 0, 194, 189, 0, 168, 165, 163, 168, - 0, 153, 0, 163, 152, 165, 174, 184, 182, 164, - 168, 179, 178, 165, 163, 163, 154, 0, 0, 159, - 172, 94, 0, 0, 167, 0, 0, 173, 136, 180, - 0, 138, 0, 0, 0, 145, 157, 168, 151, 151, - 150, 164, 0, 150, 154, 155, 145, 159, 0, 144, - 142, 140, 144, 115, 295, 121, 115, 0, 135, 0, + 0, 299, 189, 181, 0, 299, 190, 104, 0, 201, + 205, 202, 0, 97, 199, 0, 211, 206, 209, 208, + 201, 203, 0, 0, 192, 190, 185, 196, 0, 195, + 202, 185, 0, 198, 193, 0, 172, 169, 167, 172, + 0, 157, 0, 167, 156, 169, 178, 188, 186, 168, + 172, 183, 182, 181, 168, 166, 166, 157, 0, 0, + 162, 175, 94, 0, 0, 170, 0, 0, 176, 139, + 183, 0, 141, 0, 0, 0, 148, 160, 171, 154, + 154, 153, 167, 145, 0, 152, 156, 157, 147, 161, + 0, 146, 144, 142, 146, 117, 299, 123, 117, 0, - 146, 110, 132, 148, 146, 130, 131, 142, 130, 128, - 139, 136, 0, 112, 110, 115, 134, 0, 0, 116, - 123, 122, 117, 123, 120, 0, 121, 109, 0, 0, - 102, 0, 108, 109, 0, 120, 0, 110, 0, 104, - 108, 91, 0, 110, 0, 95, 94, 84, 63, 0, - 0, 0, 0, 295, 295, 295, 136, 138, 90 + 137, 0, 148, 110, 134, 132, 149, 147, 131, 132, + 143, 131, 129, 140, 137, 0, 113, 111, 116, 135, + 0, 0, 117, 0, 124, 123, 118, 124, 121, 0, + 122, 110, 0, 0, 103, 0, 109, 110, 0, 121, + 0, 111, 0, 110, 109, 92, 0, 110, 0, 95, + 94, 84, 63, 0, 0, 0, 0, 299, 299, 299, + 136, 138, 90 } ; -static const flex_int16_t yy_def[260] = +static const flex_int16_t yy_def[264] = { 0, - 256, 1, 256, 256, 256, 256, 256, 257, 256, 256, - 258, 256, 256, 256, 256, 256, 256, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 256, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 256, 256, 256, - 257, 256, 256, 256, 258, 256, 256, 256, 256, 256, - 256, 256, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 256, 256, 259, 259, 259, 259, 259, 259, 259, 259, + 260, 1, 260, 260, 260, 260, 260, 261, 260, 260, + 262, 260, 260, 260, 260, 260, 260, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 260, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 260, 260, 260, + 261, 260, 260, 260, 262, 260, 260, 260, 260, 260, + 260, 260, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 260, 260, 263, 263, 263, 263, 263, 263, 263, 263, - 259, 256, 259, 259, 259, 256, 256, 256, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 256, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 256, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 256, 259, 256, 259, 259, 259, + 263, 260, 263, 263, 263, 260, 260, 260, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 260, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 260, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 260, 263, 260, 263, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 256, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 256, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 256, 259, 259, 259, 259, 259, 259, 256, 259, - 259, 259, 259, 256, 256, 0, 256, 256, 256 + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 260, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 260, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 260, 263, 263, 263, 263, + 263, 263, 260, 263, 263, 263, 263, 260, 260, 0, + 260, 260, 260 } ; -static const flex_int16_t yy_nxt[359] = +static const flex_int16_t yy_nxt[363] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 14, 6, 15, 16, 17, 18, 19, 20, @@ -773,36 +775,37 @@ 100, 63, 81, 85, 87, 82, 88, 57, 57, 57, 49, 108, 108, 108, 58, 59, 59, 59, 110, 111, - 117, 125, 118, 139, 108, 108, 108, 190, 150, 253, - 151, 218, 219, 254, 255, 126, 152, 93, 140, 252, - 251, 250, 249, 248, 247, 191, 51, 51, 55, 55, - 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, - 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, - 226, 225, 224, 223, 222, 221, 220, 217, 216, 215, - 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, - 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, - 194, 193, 192, 189, 188, 187, 186, 185, 184, 183, + 117, 125, 118, 139, 108, 108, 108, 192, 150, 257, + 151, 221, 222, 258, 259, 126, 152, 93, 140, 256, + 255, 254, 153, 253, 252, 193, 51, 51, 55, 55, + 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, + 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, + 231, 230, 229, 228, 227, 226, 225, 224, 223, 220, + 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, + 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, + 199, 198, 197, 196, 195, 194, 191, 190, 189, 188, - 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, - 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, - 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, - 149, 148, 147, 146, 145, 144, 143, 142, 141, 138, - 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, - 127, 124, 123, 122, 121, 120, 119, 116, 115, 114, - 113, 112, 109, 56, 107, 52, 106, 105, 104, 103, - 102, 101, 96, 95, 94, 91, 90, 89, 83, 71, - 70, 69, 66, 65, 64, 62, 61, 60, 56, 54, - 53, 52, 50, 256, 3, 256, 256, 256, 256, 256, + 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, + 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, + 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, + 157, 156, 155, 154, 149, 148, 147, 146, 145, 144, + 143, 142, 141, 138, 137, 136, 135, 134, 133, 132, + 131, 130, 129, 128, 127, 124, 123, 122, 121, 120, + 119, 116, 115, 114, 113, 112, 109, 56, 107, 52, + 106, 105, 104, 103, 102, 101, 96, 95, 94, 91, + 90, 89, 83, 71, 70, 69, 66, 65, 64, 62, + 61, 60, 56, 54, 53, 52, 50, 260, 3, 260, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256 + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260 } ; -static const flex_int16_t yy_chk[359] = +static const flex_int16_t yy_chk[363] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -813,36 +816,37 @@ 1, 1, 1, 6, 13, 13, 13, 14, 14, 14, 14, 21, 26, 21, 6, 27, 28, 29, 30, 27, 26, 37, 32, 41, 33, 29, 28, 41, 42, 49, - 42, 259, 30, 32, 33, 30, 33, 57, 57, 57, + 42, 263, 30, 32, 33, 30, 33, 57, 57, 57, 49, 58, 58, 58, 59, 59, 59, 59, 65, 65, - 71, 80, 71, 96, 108, 108, 108, 162, 114, 248, - 114, 202, 202, 249, 249, 80, 114, 37, 96, 247, - 246, 244, 242, 241, 240, 162, 257, 257, 258, 258, - 238, 236, 234, 233, 231, 228, 227, 225, 224, 223, - 222, 221, 220, 217, 216, 215, 214, 212, 211, 210, - 209, 208, 207, 206, 205, 204, 203, 201, 199, 197, - 196, 194, 193, 192, 191, 190, 188, 187, 186, 185, - 184, 182, 181, 180, 179, 178, 177, 176, 172, 170, - 169, 168, 165, 161, 160, 157, 156, 155, 154, 153, + 71, 80, 71, 96, 108, 108, 108, 163, 114, 252, + 114, 204, 204, 253, 253, 80, 114, 37, 96, 251, + 250, 248, 114, 246, 245, 163, 261, 261, 262, 262, + 244, 242, 240, 238, 237, 235, 232, 231, 229, 228, + 227, 226, 225, 223, 220, 219, 218, 217, 215, 214, + 213, 212, 211, 210, 209, 208, 207, 206, 205, 203, + 201, 199, 198, 196, 195, 194, 193, 192, 190, 189, + 188, 187, 186, 184, 183, 182, 181, 180, 179, 178, + 177, 173, 171, 170, 169, 166, 162, 161, 158, 157, - 152, 151, 150, 149, 148, 147, 146, 145, 144, 142, - 140, 139, 138, 137, 135, 134, 132, 131, 130, 128, - 127, 126, 125, 122, 121, 120, 119, 118, 117, 115, - 112, 111, 110, 107, 104, 103, 99, 98, 97, 95, - 93, 90, 89, 88, 87, 86, 85, 84, 83, 82, - 81, 78, 76, 75, 74, 73, 72, 70, 69, 68, - 67, 66, 64, 55, 53, 51, 48, 47, 46, 45, - 44, 43, 40, 39, 38, 36, 35, 34, 31, 25, - 24, 23, 20, 19, 18, 17, 16, 15, 11, 10, - 9, 8, 7, 3, 256, 256, 256, 256, 256, 256, + 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, + 146, 145, 144, 142, 140, 139, 138, 137, 135, 134, + 132, 131, 130, 128, 127, 126, 125, 122, 121, 120, + 119, 118, 117, 115, 112, 111, 110, 107, 104, 103, + 99, 98, 97, 95, 93, 90, 89, 88, 87, 86, + 85, 84, 83, 82, 81, 78, 76, 75, 74, 73, + 72, 70, 69, 68, 67, 66, 64, 55, 53, 51, + 48, 47, 46, 45, 44, 43, 40, 39, 38, 36, + 35, 34, 31, 25, 24, 23, 20, 19, 18, 17, + 16, 15, 11, 10, 9, 8, 7, 3, 260, 260, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256 + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260 } ; static yy_state_type yy_last_accepting_state; @@ -897,8 +901,8 @@ static pcb_qry_node_t *make_constant(char *str, long val); static pcb_qry_node_t *make_const_obj(char *str, pcb_any_obj_t *obj); #define YY_INPUT(buf, res, buflen) (res = qry_yy_input(buf, buflen)) -#line 901 "query_l.c" -#line 902 "query_l.c" +#line 905 "query_l.c" +#line 906 "query_l.c" #define INITIAL 0 @@ -1117,7 +1121,7 @@ { #line 42 "query_l.l" -#line 1121 "query_l.c" +#line 1125 "query_l.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1144,13 +1148,13 @@ 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 >= 257 ) + if ( yy_current_state >= 261 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 295 ); + while ( yy_base[yy_current_state] != 299 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1418,93 +1422,93 @@ YY_BREAK case 49: YY_RULE_SETUP -#line 98 "query_l.l" -{ qry_lval.c = PCB->hidlib.size_x; return T_INT; } +#line 97 "query_l.l" +{ qry_lval.n = make_const_obj(yytext, &pcb_qry_drc_ctrl[PCB_QRY_DRC_TEXT]); return T_CONST; } YY_BREAK case 50: YY_RULE_SETUP #line 99 "query_l.l" -{ qry_lval.c = PCB->hidlib.size_y; return T_INT; } +{ qry_lval.c = PCB->hidlib.size_x; return T_INT; } YY_BREAK case 51: YY_RULE_SETUP -#line 101 "query_l.l" -{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_MM); return T_UNIT; } +#line 100 "query_l.l" +{ qry_lval.c = PCB->hidlib.size_y; return T_INT; } YY_BREAK case 52: YY_RULE_SETUP #line 102 "query_l.l" -{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_M); return T_UNIT; } +{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_MM); return T_UNIT; } YY_BREAK case 53: YY_RULE_SETUP #line 103 "query_l.l" -{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_UM); return T_UNIT; } +{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_M); return T_UNIT; } YY_BREAK case 54: YY_RULE_SETUP #line 104 "query_l.l" -{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_CM); return T_UNIT; } +{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_UM); return T_UNIT; } YY_BREAK case 55: YY_RULE_SETUP #line 105 "query_l.l" -{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_NM); return T_UNIT; } +{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_CM); return T_UNIT; } YY_BREAK case 56: YY_RULE_SETUP #line 106 "query_l.l" -{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_MIL); return T_UNIT; } +{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_NM); return T_UNIT; } YY_BREAK case 57: YY_RULE_SETUP #line 107 "query_l.l" -{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_IN); return T_UNIT; } +{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_MIL); return T_UNIT; } YY_BREAK case 58: YY_RULE_SETUP -#line 109 "query_l.l" -{ return T_THUS; } +#line 108 "query_l.l" +{ qry_lval.u = get_unit_struct_by_allow(PCB_UNIT_ALLOW_IN); return T_UNIT; } YY_BREAK case 59: YY_RULE_SETUP #line 110 "query_l.l" -{ return T_OR; } +{ return T_THUS; } YY_BREAK case 60: YY_RULE_SETUP #line 111 "query_l.l" -{ return T_AND; } +{ return T_OR; } YY_BREAK case 61: YY_RULE_SETUP #line 112 "query_l.l" -{ return T_EQ; } +{ return T_AND; } YY_BREAK case 62: YY_RULE_SETUP #line 113 "query_l.l" -{ return T_NEQ; } +{ return T_EQ; } YY_BREAK case 63: YY_RULE_SETUP #line 114 "query_l.l" -{ return T_GTEQ; } +{ return T_NEQ; } YY_BREAK case 64: YY_RULE_SETUP #line 115 "query_l.l" -{ return T_LTEQ; } +{ return T_GTEQ; } YY_BREAK case 65: YY_RULE_SETUP -#line 117 "query_l.l" -{ qry_lval.c = strtol(yytext, NULL, 10); return T_INT; } +#line 116 "query_l.l" +{ return T_LTEQ; } YY_BREAK case 66: YY_RULE_SETUP #line 118 "query_l.l" -{ qry_lval.d = strtod(yytext, NULL); return T_DBL; } +{ qry_lval.c = strtol(yytext, NULL, 10); return T_INT; } YY_BREAK case 67: YY_RULE_SETUP @@ -1514,36 +1518,41 @@ case 68: YY_RULE_SETUP #line 120 "query_l.l" -{ qry_lval.s = pcb_strdup(yytext); return T_STR; } +{ qry_lval.d = strtod(yytext, NULL); return T_DBL; } YY_BREAK case 69: YY_RULE_SETUP -#line 122 "query_l.l" -{ return *yytext; } +#line 121 "query_l.l" +{ qry_lval.s = pcb_strdup(yytext); return T_STR; } YY_BREAK case 70: -/* rule 70 can match eol */ YY_RULE_SETUP -#line 124 "query_l.l" -{ continue; /* multiline rules */} +#line 123 "query_l.l" +{ return *yytext; } YY_BREAK case 71: /* rule 71 can match eol */ YY_RULE_SETUP #line 125 "query_l.l" -{ return T_NL; } +{ continue; /* multiline rules */} YY_BREAK case 72: +/* rule 72 can match eol */ YY_RULE_SETUP #line 126 "query_l.l" -{ continue; } +{ return T_NL; } YY_BREAK case 73: YY_RULE_SETUP -#line 128 "query_l.l" +#line 127 "query_l.l" +{ continue; } + YY_BREAK +case 74: +YY_RULE_SETUP +#line 129 "query_l.l" ECHO; YY_BREAK -#line 1547 "query_l.c" +#line 1556 "query_l.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1840,7 +1849,7 @@ 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 >= 257 ) + if ( yy_current_state >= 261 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -1868,11 +1877,11 @@ 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 >= 257 ) + if ( yy_current_state >= 261 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 256); + yy_is_jam = (yy_current_state == 260); return yy_is_jam ? 0 : yy_current_state; } @@ -2548,7 +2557,7 @@ #define YYTABLES_NAME "yytables" -#line 128 "query_l.l" +#line 129 "query_l.l" static int qry_yy_input(char *buf, int buflen) Index: trunk/src_plugins/query/query_l.h =================================================================== --- trunk/src_plugins/query/query_l.h (revision 30857) +++ trunk/src_plugins/query/query_l.h (revision 30858) @@ -700,7 +700,7 @@ #undef yyTABLES_NAME #endif -#line 128 "query_l.l" +#line 129 "query_l.l" #line 707 "query_l.h" Index: trunk/src_plugins/query/query_l.l =================================================================== --- trunk/src_plugins/query/query_l.l (revision 30857) +++ trunk/src_plugins/query/query_l.l (revision 30858) @@ -94,6 +94,7 @@ "DRCGRP2" { qry_lval.n = make_const_obj(yytext, &pcb_qry_drc_ctrl[PCB_QRY_DRC_GRP2]); return T_CONST; } "DRCEXPECT" { qry_lval.n = make_const_obj(yytext, &pcb_qry_drc_ctrl[PCB_QRY_DRC_EXPECT]); return T_CONST; } "DRCMEASURE" { qry_lval.n = make_const_obj(yytext, &pcb_qry_drc_ctrl[PCB_QRY_DRC_MEASURE]); return T_CONST; } +"DRCTEXT" { qry_lval.n = make_const_obj(yytext, &pcb_qry_drc_ctrl[PCB_QRY_DRC_TEXT]); return T_CONST; } "$dwg_area_x" { qry_lval.c = PCB->hidlib.size_x; return T_INT; } "$dwg_area_y" { qry_lval.c = PCB->hidlib.size_y; return T_INT; }