Index: trunk/src_plugins/io_bxl/bxl.h =================================================================== --- trunk/src_plugins/io_bxl/bxl.h (revision 30632) +++ trunk/src_plugins/io_bxl/bxl.h (revision 30633) @@ -26,6 +26,8 @@ pcb_subc_t *subc; char in_target_fp; /* 1 if we are parsing the target footprint; else skip */ + int in_error; + /* cache */ htsp_t layer_name2ly; htsp_t text_name2style; Index: trunk/src_plugins/io_bxl/bxl_gram.c =================================================================== --- trunk/src_plugins/io_bxl/bxl_gram.c (revision 30632) +++ trunk/src_plugins/io_bxl/bxl_gram.c (revision 30633) @@ -27,7 +27,7 @@ 53, 53, 53, 55, 39, 54, 54, 56, 56, 56, 56, 56, 56, 58, 40, 57, 57, 59, 59, 59, 59, 59, 59, 41, 38, 60, 60, 61, 61, 61, - 11, + 62, 11, 63, 11, }; static const pcb_bxl_int_t pcb_bxl_len[] = { 2, 2, 0, 3, 1, 1, 1, 1, 1, 1, 1, @@ -43,132 +43,132 @@ 1, 1, 1, 0, 3, 0, 4, 2, 2, 2, 1, 1, 1, 0, 3, 0, 4, 2, 2, 2, 1, 1, 1, 2, 2, 0, 4, 2, 2, 1, - 6, + 0, 4, 0, 4, }; static const pcb_bxl_int_t pcb_bxl_defred[] = { 0, - 0, 0, 0, 13, 11, 0, 0, 0, 0, 1, - 0, 4, 5, 6, 7, 23, 30, 0, 0, 0, - 0, 0, 49, 0, 3, 0, 24, 0, 0, 0, + 0, 0, 0, 13, 11, 0, 0, 0, 1, 0, + 4, 5, 6, 7, 0, 0, 23, 30, 0, 0, + 0, 0, 0, 0, 49, 3, 0, 0, 0, 24, + 0, 0, 0, 132, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 0, 14, - 15, 27, 28, 29, 0, 16, 35, 8, 9, 36, - 37, 38, 0, 0, 0, 0, 0, 0, 50, 0, - 131, 26, 34, 0, 0, 0, 0, 0, 52, 0, - 0, 0, 0, 0, 31, 68, 79, 88, 96, 104, - 114, 0, 0, 0, 0, 60, 61, 62, 63, 64, - 65, 66, 67, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 124, 125, 57, 0, 54, 55, - 56, 0, 0, 0, 0, 69, 0, 80, 0, 89, - 0, 97, 0, 105, 0, 115, 0, 0, 0, 130, - 0, 59, 41, 32, 40, 0, 0, 0, 0, 0, - 0, 78, 0, 0, 0, 0, 0, 85, 86, 87, - 0, 0, 93, 94, 95, 0, 0, 0, 0, 0, - 101, 102, 103, 0, 0, 0, 0, 111, 112, 113, - 0, 0, 0, 0, 121, 122, 123, 0, 0, 128, - 129, 0, 0, 72, 73, 74, 75, 76, 77, 0, - 22, 21, 83, 0, 0, 0, 0, 18, 0, 17, - 19, 0, 108, 109, 110, 0, 120, 118, 119, 0, - 0, 127, 0, 0, 71, 84, 82, 0, 91, 100, - 99, 107, 117, 20, 0, 0, 47, 48, 0, 42, - 92, 45, 46, 0, 44, + 0, 53, 14, 15, 27, 28, 29, 0, 16, 35, + 8, 9, 36, 37, 38, 0, 0, 0, 0, 0, + 0, 50, 0, 26, 34, 0, 0, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 31, 68, 79, 88, + 96, 104, 114, 0, 0, 0, 0, 60, 61, 62, + 63, 64, 65, 66, 67, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 124, 125, 57, 0, + 54, 55, 56, 0, 0, 0, 0, 69, 0, 80, + 0, 89, 0, 97, 0, 105, 0, 115, 0, 0, + 0, 130, 0, 59, 41, 32, 40, 0, 0, 0, + 0, 0, 0, 78, 0, 0, 0, 0, 0, 85, + 86, 87, 0, 0, 93, 94, 95, 0, 0, 0, + 0, 0, 101, 102, 103, 0, 0, 0, 0, 111, + 112, 113, 0, 0, 0, 0, 121, 122, 123, 0, + 0, 128, 129, 0, 0, 72, 73, 74, 75, 76, + 77, 0, 22, 21, 83, 0, 0, 0, 0, 18, + 0, 17, 19, 0, 108, 109, 110, 0, 120, 118, + 119, 0, 0, 127, 0, 0, 71, 84, 82, 0, + 91, 100, 99, 107, 117, 20, 0, 0, 47, 48, + 0, 42, 92, 45, 46, 0, 44, }; static const pcb_bxl_int_t pcb_bxl_dgoto[] = { 2, - 56, 57, 60, 3, 10, 11, 4, 12, 13, 14, - 15, 171, 140, 159, 160, 27, 21, 35, 29, 22, - 123, 107, 40, 124, 224, 193, 239, 46, 30, 47, - 48, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 126, 108, 153, 128, 109, 161, 130, 110, 166, - 132, 111, 174, 134, 112, 181, 136, 113, 188, 115, - 141, + 59, 60, 63, 3, 9, 10, 4, 11, 12, 13, + 14, 173, 142, 161, 162, 30, 23, 39, 32, 24, + 125, 109, 44, 126, 226, 195, 241, 50, 33, 51, + 52, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 128, 110, 155, 130, 111, 163, 132, 112, 168, + 134, 113, 176, 136, 114, 183, 138, 115, 190, 117, + 143, 15, 16, }; -static const pcb_bxl_int_t pcb_bxl_sindex[] = { 6, - 6, 0, -241, 0, 0, -236, -230, -209, -221, 0, - 6, 0, 0, 0, 0, 0, 0, 6, -260, -241, - 15, 19, 0, -253, 0, -198, 0, -233, 6, -170, - -184, -217, -217, -217, 36, -217, -162, -162, -162, 50, - -176, 38, 61, 63, 64, -173, 6, 0, -206, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 19, 58, -141, -217, -217, -217, 0, -170, - 0, 0, 0, -136, 6, 82, 84, 86, 0, 6, - -249, -217, -217, -217, 0, 0, 0, 0, 0, 0, - 0, 99, 99, -140, 6, 0, 0, 0, 0, 0, - 0, 0, 0, 101, 102, 104, -124, 107, 108, 111, - 112, 113, 114, -276, 0, 0, 0, -249, 0, 0, - 0, -104, -109, -124, -154, 0, -225, 0, -193, 0, - -215, 0, -182, 0, -234, 0, -217, -100, -99, 0, - 121, 0, 0, 0, 0, -95, -94, -93, -92, -89, - -217, 0, 124, -217, -87, -88, 129, 0, 0, 0, - 133, -217, 0, 0, 0, 134, -84, -83, -79, -162, - 0, 0, 0, 138, -217, -217, -217, 0, 0, 0, - 139, -217, -78, -162, 0, 0, 0, 140, 141, 0, - 0, 99, 143, 0, 0, 0, 0, 0, 0, 107, - 0, 0, 0, -217, 108, 142, 111, 0, -76, 0, - 0, 112, 0, 0, 0, 113, 0, 0, 0, 114, - -217, 0, -189, 6, 0, 0, 0, -217, 0, 0, - 0, 0, 0, 0, -217, -71, 0, 0, 147, 0, - 0, 0, 0, 143, 0, +static const pcb_bxl_int_t pcb_bxl_sindex[] = { -7, + -7, 0, -181, 0, 0, -255, -250, -226, 0, -7, + 0, 0, 0, 0, -285, -278, 0, 0, -7, -181, + -216, -213, 6, 12, 0, 0, -249, -259, -119, 0, + -234, -7, -140, 0, 0, -210, -210, -210, 25, -210, + -201, -201, -201, 27, -198, 15, 36, 39, 41, -176, + -7, 0, 0, 0, 0, 0, 0, 6, 0, 0, + 0, 0, 0, 0, 0, 12, 34, -160, -210, -210, + -210, 0, -140, 0, 0, -153, -7, 69, 73, 75, + 0, -7, -178, -210, -210, -210, 0, 0, 0, 0, + 0, 0, 0, 80, 80, -157, -7, 0, 0, 0, + 0, 0, 0, 0, 0, 85, 86, 88, -131, 90, + 110, 112, 113, 116, 117, -257, 0, 0, 0, -178, + 0, 0, 0, -102, -109, -131, -154, 0, -233, 0, + -199, 0, -235, 0, -207, 0, -245, 0, -210, -100, + -99, 0, 121, 0, 0, 0, 0, -94, -97, -93, + -91, -92, -210, 0, 124, -210, -87, -89, 128, 0, + 0, 0, 132, -210, 0, 0, 0, 133, -84, -83, + -79, -201, 0, 0, 0, 138, -210, -210, -210, 0, + 0, 0, 139, -210, -77, -201, 0, 0, 0, 140, + 141, 0, 0, 80, 144, 0, 0, 0, 0, 0, + 0, 90, 0, 0, 0, -210, 110, 142, 112, 0, + -73, 0, 0, 113, 0, 0, 0, 116, 0, 0, + 0, 117, -210, 0, -187, -7, 0, 0, 0, -210, + 0, 0, 0, 0, 0, 0, -210, -70, 0, 0, + 148, 0, 0, 0, 0, 144, 0, }; static const pcb_bxl_int_t pcb_bxl_rindex[] = { 9, - 1, 0, 189, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, - 180, 181, 0, 0, 0, 0, 0, 0, 0, -86, + 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 180, 181, 0, 0, 0, 0, 0, 0, + 0, 0, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, + 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, + 0, 0, -86, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -85, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 182, 182, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -74, 185, + 187, 188, 189, 190, 191, 0, 0, 0, 0, -85, + 0, 0, 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, - 0, 0, 181, 0, 0, 0, 0, 0, 0, -86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -82, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 182, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -74, 185, 186, 187, - 188, 190, 191, 0, 0, 0, 0, -82, 0, 0, - 0, 0, 0, -74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 182, 192, 0, 0, 0, 0, 0, + 0, 185, 0, 0, 0, 0, 187, 0, 188, 0, + 0, 0, 0, 189, 0, 0, 0, 190, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 192, 0, 0, 0, 0, 0, 0, 185, - 0, 0, 0, 0, 186, 0, 187, 0, 0, 0, - 0, 188, 0, 0, 0, 190, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 192, 0, + 0, 0, 0, 0, 0, 192, 0, }; static const pcb_bxl_int_t pcb_bxl_gindex[] = { 0, - -27, -64, -26, 0, 183, 0, -1, 0, 0, 0, - 0, 69, -4, -108, -118, 150, 0, 0, 144, 0, - 85, 0, 0, 0, -38, 0, 0, 145, 0, 0, - 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 0, 0, 7, 0, 0, 4, 0, 0, - 2, 0, 0, -3, 0, 0, -2, 0, 0, -85, - 0, + -30, -55, -31, 0, 183, 0, 3, 0, 0, 0, + 0, 67, -25, -114, -111, 147, 0, 0, 143, 0, + 81, 0, 0, 0, -40, 0, 0, 135, 0, 0, + 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 0, 0, 5, 0, 0, 4, 0, 0, + 7, 0, 0, -4, 0, 0, -6, 0, 0, -95, + 0, 0, 0, }; -#define pcb_bxl_TABLESIZE 321 -static const pcb_bxl_int_t pcb_bxl_table[] = { 5, - 10, 76, 77, 78, 52, 53, 54, 116, 12, 20, - 165, 61, 62, 137, 180, 1, 23, 104, 105, 106, - 164, 6, 173, 16, 179, 7, 187, 41, 167, 17, - 138, 139, 50, 51, 19, 86, 8, 36, 37, 38, - 50, 51, 155, 87, 88, 70, 89, 167, 154, 90, - 18, 155, 24, 91, 26, 137, 92, 182, 28, 93, - 31, 155, 157, 169, 137, 32, 33, 34, 183, 170, - 9, 49, 189, 81, 137, 184, 55, 39, 85, 156, - 154, 168, 169, 155, 154, 235, 236, 155, 170, 201, - 63, 154, 64, 118, 155, 65, 137, 206, 58, 59, - 66, 162, 67, 68, 238, 69, 222, 137, 71, 42, - 213, 43, 44, 45, 237, 74, 75, 175, 176, 177, - 152, 80, 158, 199, 163, 82, 172, 83, 178, 84, - 186, 146, 147, 148, 149, 137, 150, 151, 114, 226, - 117, 119, 120, 211, 121, 122, 125, 127, 214, 215, - 129, 131, 133, 135, 217, 143, 234, 219, 144, 190, - 191, 192, 194, 241, 200, 195, 196, 197, 198, 202, - 242, 203, 204, 205, 207, 208, 209, 210, 212, 216, - 220, 218, 223, 230, 221, 228, 243, 244, 2, 25, - 33, 126, 51, 39, 70, 81, 90, 98, 58, 106, - 116, 43, 25, 185, 72, 245, 73, 142, 145, 225, - 229, 227, 232, 231, 79, 0, 0, 233, 0, 0, - 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, +#define pcb_bxl_TABLESIZE 323 +static const pcb_bxl_int_t pcb_bxl_table[] = { 118, + 10, 2, 1, 5, 17, 55, 56, 57, 12, 18, + 64, 65, 20, 78, 79, 80, 166, 169, 175, 167, + 181, 25, 189, 182, 53, 54, 21, 169, 106, 107, + 108, 157, 139, 19, 45, 22, 40, 41, 42, 27, + 156, 157, 28, 157, 139, 29, 184, 53, 54, 140, + 141, 31, 171, 73, 139, 35, 139, 185, 172, 61, + 62, 170, 171, 34, 186, 58, 156, 66, 172, 157, + 67, 158, 68, 159, 156, 69, 43, 157, 70, 83, + 71, 6, 139, 191, 87, 7, 156, 237, 238, 157, + 139, 76, 177, 178, 179, 164, 8, 77, 224, 120, + 203, 154, 72, 160, 82, 165, 88, 174, 208, 180, + 239, 188, 84, 240, 89, 90, 85, 91, 86, 116, + 92, 215, 201, 119, 93, 121, 122, 94, 123, 127, + 95, 148, 149, 150, 151, 139, 152, 153, 124, 46, + 213, 47, 48, 49, 36, 37, 38, 216, 217, 129, + 228, 131, 133, 219, 221, 135, 137, 145, 146, 192, + 193, 194, 197, 196, 202, 200, 198, 236, 199, 204, + 205, 206, 207, 209, 243, 210, 211, 212, 214, 218, + 222, 244, 220, 225, 223, 230, 232, 245, 246, 25, + 33, 126, 51, 39, 70, 58, 81, 90, 98, 106, + 116, 43, 26, 187, 74, 247, 147, 81, 75, 227, + 144, 229, 231, 234, 0, 235, 0, 0, 0, 0, + 233, 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -177,33 +177,33 @@ 10, 10, 10, 10, 10, 10, 12, 0, 0, 0, 0, 0, 0, 10, 10, 0, 10, 0, 0, 10, 0, 0, 0, 10, 0, 0, 10, 0, 0, 10, - 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 12, + 0, 0, 10, 131, 10, 133, 0, 0, 0, 0, + 12, 0, 12, }; -static const pcb_bxl_int_t pcb_bxl_check[] = { 1, - 0, 66, 67, 68, 32, 33, 34, 93, 0, 11, - 129, 38, 39, 290, 133, 10, 18, 82, 83, 84, - 129, 263, 131, 260, 133, 267, 135, 29, 263, 260, - 307, 308, 258, 259, 256, 285, 278, 271, 272, 273, - 258, 259, 277, 293, 294, 47, 296, 263, 274, 299, - 260, 277, 313, 303, 40, 290, 306, 292, 40, 309, - 314, 277, 127, 298, 290, 264, 265, 266, 303, 304, - 312, 256, 137, 75, 290, 310, 41, 311, 80, 305, - 274, 297, 298, 277, 274, 275, 276, 277, 304, 154, - 41, 274, 269, 95, 277, 58, 290, 162, 261, 262, - 40, 295, 40, 40, 223, 279, 192, 290, 315, 280, - 175, 282, 283, 284, 223, 58, 258, 300, 301, 302, - 125, 258, 127, 151, 129, 44, 131, 44, 133, 44, - 135, 286, 287, 288, 289, 290, 291, 292, 40, 204, - 281, 41, 41, 170, 41, 270, 40, 40, 176, 177, - 40, 40, 40, 40, 182, 260, 221, 184, 268, 260, - 260, 41, 258, 228, 41, 260, 260, 260, 258, 257, - 235, 260, 44, 41, 41, 260, 260, 257, 41, 41, - 41, 260, 40, 260, 44, 44, 258, 41, 0, 10, - 10, 10, 279, 268, 10, 10, 10, 10, 281, 10, - 10, 10, 20, 135, 55, 244, 63, 118, 124, 200, - 207, 205, 216, 212, 70, -1, -1, 220, -1, -1, - -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, +static const pcb_bxl_int_t pcb_bxl_check[] = { 95, + 0, 0, 10, 1, 260, 36, 37, 38, 0, 260, + 42, 43, 10, 69, 70, 71, 131, 263, 133, 131, + 135, 19, 137, 135, 258, 259, 312, 263, 84, 85, + 86, 277, 290, 260, 32, 314, 271, 272, 273, 256, + 274, 277, 256, 277, 290, 40, 292, 258, 259, 307, + 308, 40, 298, 51, 290, 315, 290, 303, 304, 261, + 262, 297, 298, 313, 310, 41, 274, 41, 304, 277, + 269, 305, 58, 129, 274, 40, 311, 277, 40, 77, + 40, 263, 290, 139, 82, 267, 274, 275, 276, 277, + 290, 58, 300, 301, 302, 295, 278, 258, 194, 97, + 156, 127, 279, 129, 258, 131, 285, 133, 164, 135, + 225, 137, 44, 225, 293, 294, 44, 296, 44, 40, + 299, 177, 153, 281, 303, 41, 41, 306, 41, 40, + 309, 286, 287, 288, 289, 290, 291, 292, 270, 280, + 172, 282, 283, 284, 264, 265, 266, 178, 179, 40, + 206, 40, 40, 184, 186, 40, 40, 260, 268, 260, + 260, 41, 260, 258, 41, 258, 260, 223, 260, 257, + 260, 44, 41, 41, 230, 260, 260, 257, 41, 41, + 41, 237, 260, 40, 44, 44, 260, 258, 41, 10, + 10, 10, 279, 268, 10, 281, 10, 10, 10, 10, + 10, 10, 20, 137, 58, 246, 126, 73, 66, 202, + 120, 207, 209, 218, -1, 222, -1, -1, -1, -1, + 214, -1, -1, -1, -1, -1, -1, -1, 226, -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, @@ -212,12 +212,12 @@ 280, 281, 282, 283, 284, 285, 278, -1, -1, -1, -1, -1, -1, 293, 294, -1, 296, -1, -1, 299, -1, -1, -1, 303, -1, -1, 306, -1, -1, 309, - -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, - 312, + -1, -1, 312, 312, 314, 314, -1, -1, -1, -1, + 312, -1, 314, }; #define pcb_bxl_FINAL 2 #define pcb_bxl_MAXTOKEN 315 -#define pcb_bxl_UNDFTOKEN 379 +#define pcb_bxl_UNDFTOKEN 381 #define pcb_bxl_TRANSLATE(a) ((a) > pcb_bxl_MAXTOKEN ? pcb_bxl_UNDFTOKEN : (a)) #if pcb_bxl_DEBUG static const char *const pcb_bxl_name[] = { @@ -240,7 +240,7 @@ "T_PROPERTY","T_WIZARD","T_VARNAME","T_VARDATA","T_TEMPLATEDATA","T_ISFLIPPED", "T_NOPASTE","T_SYMBOL","T_ENDSYMBOL","T_COMPONENT","T_ENDCOMPONENT",0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"illegal-symbol", +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"illegal-symbol", }; static const char *const pcb_bxl_rule[] = { "$accept : full_file", @@ -374,7 +374,10 @@ "wizard_attr : T_VARNAME T_QSTR", "wizard_attr : T_VARDATA T_QSTR", "wizard_attr : common_origin", -"boring_section : T_SYMBOL error T_ENDSYMBOL T_COMPONENT error T_ENDCOMPONENT", +"$$12 :", +"boring_section : $$12 T_SYMBOL error T_ENDSYMBOL", +"$$13 :", +"boring_section : $$13 T_COMPONENT error T_ENDCOMPONENT", }; #endif @@ -831,7 +834,23 @@ #line 384 "../../src_plugins/io_bxl/bxl_gram.y" { free(yyctx->stack.l_mark[0].un.s); } break; -#line 847 "../../src_plugins/io_bxl/bxl_gram.c" +case 131: +#line 390 "../../src_plugins/io_bxl/bxl_gram.y" + { ctx->in_error = 1; } +break; +case 132: +#line 390 "../../src_plugins/io_bxl/bxl_gram.y" + { ctx->in_error = 0; } +break; +case 133: +#line 391 "../../src_plugins/io_bxl/bxl_gram.y" + { ctx->in_error = 1; } +break; +case 134: +#line 391 "../../src_plugins/io_bxl/bxl_gram.y" + { ctx->in_error = 0; } +break; +#line 866 "../../src_plugins/io_bxl/bxl_gram.c" } yyctx->stack.s_mark -= yyctx->yym; yyctx->state = *yyctx->stack.s_mark; Index: trunk/src_plugins/io_bxl/bxl_gram.y =================================================================== --- trunk/src_plugins/io_bxl/bxl_gram.y (revision 30632) +++ trunk/src_plugins/io_bxl/bxl_gram.y (revision 30633) @@ -387,6 +387,6 @@ /*** Sections not interesting for pcb-rnd ***/ boring_section: - T_SYMBOL error T_ENDSYMBOL - T_COMPONENT error T_ENDCOMPONENT + { ctx->in_error = 1; } T_SYMBOL error T_ENDSYMBOL { ctx->in_error = 0; } + | { ctx->in_error = 1; } T_COMPONENT error T_ENDCOMPONENT { ctx->in_error = 0; } ; Index: trunk/src_plugins/io_bxl/read.c =================================================================== --- trunk/src_plugins/io_bxl/read.c (revision 30632) +++ trunk/src_plugins/io_bxl/read.c (revision 30633) @@ -635,6 +635,10 @@ lval.line = lctx.loc_line[0]; lval.first_col = lctx.loc_col[0]; yres = pcb_bxl_parse(&yyctx, &bctx, tok, &lval); + + if ((bctx.in_error) && ((tok == T_ID) || (tok == T_QSTR))) + free(lval.un.s); + if (yres != 0) { printf("Syntax error at %ld:%ld\n", lval.line, lval.first_col); ret = -1;