pl_scan.c
来自「postgresql8.3.4源码,开源数据库」· C语言 代码 · 共 2,225 行 · 第 1/5 页
C
2,225 行
372, 378, 378, 378, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 379, 372, 380, 372, 372, 372, 381, 381, 382, 372, 383, 383, 372, 372, 372, 384, 385, 372, 372, 372, 372, 372, 24, 372, 386, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 379, 372, 372, 372, 381, 372, 387, 372, 383, 372, 372, 388, 384, 385, 372, 372, 386, 389, 390, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 387, 372, 372, 388, 391, 392, 372, 372, 389, 372, 372, 390, 372, 393, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 372, 372, 391, 372, 372, 392, 372, 394, 372, 372, 372, 372, 393, 395, 396, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 372, 372, 372, 372, 394, 397, 398, 372, 372, 372, 372, 395, 372, 372, 396, 372, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 372, 372, 372, 372, 372, 397, 372, 372, 398, 372, 372, 372, 372, 372, 24, 24, 24, 24, 24, 24, 24, 372, 24, 24, 24, 24, 24, 372, 372, 372, 372, 372, 372, 372, 372, 372, 24, 24, 24, 24, 372, 24, 24, 372, 372, 372, 372, 372, 372, 372, 24, 24, 372, 24, 24, 372, 372, 372, 372, 372, 24, 24, 372, 372, 372, 24, 372, 0, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372 } ;static yyconst short int yy_nxt[1179] = { 0, 10, 11, 12, 11, 13, 10, 14, 10, 15, 10, 16, 17, 18, 19, 20, 21, 10, 22, 23, 24, 25, 26, 27, 28, 29, 22, 30, 22, 31, 32, 33, 34, 35, 36, 37, 38, 22, 22, 39, 22, 22, 42, 42, 48, 45, 45, 52, 49, 53, 43, 43, 46, 46, 48, 50, 50, 50, 49, 50, 50, 50, 54, 371, 62, 62, 62, 369, 368, 55, 64, 62, 62, 62, 65, 72, 63, 64, 82, 73, 367, 65, 69, 364, 92, 70, 79, 363, 362, 74, 71, 361, 75, 63, 63, 80, 63, 81, 66, 62, 62, 62, 63, 63, 63, 64, 63, 63, 83, 65, 63, 360, 76, 63, 77, 84, 357, 63, 63, 85, 67, 63, 86, 78, 63, 63, 87, 88, 63, 63, 93, 63, 89, 354, 94, 63, 63, 63, 68, 90, 91, 123, 96, 95, 63, 63, 101, 63, 98, 118, 63, 119, 63, 102, 99, 63, 353, 97, 50, 50, 50, 352, 63, 100, 62, 62, 62, 112, 63, 351, 64, 113, 113, 113, 65, 350, 349, 114, 62, 62, 62, 115, 348, 55, 64, 63, 63, 124, 65, 120, 120, 120, 121, 63, 63, 125, 128, 129, 131, 63, 130, 126, 63, 63, 63, 127, 63, 63, 134, 63, 63, 63, 63, 132, 63, 63, 135, 63, 136, 133, 63, 63, 137, 138, 63, 63, 139, 63, 63, 63, 140, 345, 63, 63, 63, 340, 63, 63, 142, 63, 151, 63, 141, 63, 63, 339, 145, 63, 63, 143, 144, 161, 63, 146, 150, 63, 147, 63, 63, 63, 63, 63, 63, 148, 148, 148, 63, 63, 152, 63, 63, 153, 63, 63, 63, 63, 158, 168, 63, 169, 63, 159, 154, 160, 63, 63, 155, 156, 63, 157, 63, 63, 63, 63, 63, 164, 181, 149, 63, 165, 63, 194, 63, 162, 338, 163, 170, 170, 170, 171, 63, 63, 63, 63, 62, 62, 62, 112, 63, 63, 64, 113, 113, 113, 65, 63, 337, 114, 63, 182, 336, 115, 120, 120, 120, 121, 177, 177, 177, 63, 63, 63, 179, 63, 63, 189, 180, 311, 63, 63, 63, 183, 184, 185, 188, 187, 186, 63, 63, 63, 191, 63, 63, 190, 63, 192, 63, 63, 63, 193, 195, 197, 63, 63, 63, 63, 63, 196, 200, 63, 63, 198, 63, 63, 63, 199, 203, 63, 335, 201, 63, 63, 63, 63, 63, 63, 63, 202, 63, 205, 334, 333, 63, 63, 63, 63, 148, 148, 148, 206, 63, 63, 64, 63, 63, 208, 65, 63, 207, 63, 210, 63, 213, 209, 63, 214, 218, 63, 63, 63, 63, 211, 63, 212, 63, 63, 215, 63, 216, 204, 63, 63, 63, 63, 63, 63, 63, 63, 63, 217, 332, 219, 63, 221, 220, 170, 170, 170, 171, 63, 233, 63, 234, 63, 63, 63, 227, 227, 227, 326, 318, 240, 229, 280, 317, 238, 230, 177, 177, 177, 121, 63, 63, 179, 177, 177, 177, 180, 63, 63, 179, 177, 177, 177, 180, 241, 239, 179, 63, 63, 63, 180, 235, 235, 235, 236, 63, 63, 243, 245, 63, 242, 244, 63, 63, 63, 63, 63, 63, 63, 63, 249, 247, 248, 63, 63, 63, 63, 63, 246, 252, 63, 63, 63, 250, 63, 63, 63, 63, 63, 251, 63, 63, 63, 63, 63, 63, 63, 255, 63, 63, 63, 253, 63, 63, 257, 63, 63, 316, 63, 63, 63, 259, 256, 63, 63, 63, 63, 63, 63, 63, 260, 63, 63, 63, 63, 63, 258, 63, 262, 63, 63, 263, 264, 63, 63, 261, 63, 63, 63, 266, 265, 315, 63, 63, 270, 63, 271, 63, 63, 281, 281, 281, 63, 311, 63, 283, 63, 63, 227, 227, 227, 171, 63, 63, 229, 227, 227, 227, 230, 309, 308, 229, 227, 227, 227, 230, 63, 284, 229, 63, 63, 63, 230, 272, 272, 272, 273, 235, 235, 235, 236, 63, 63, 63, 63, 63, 63, 63, 63, 63, 285, 288, 286, 307, 287, 289, 63, 290, 63, 63, 63, 63, 63, 63, 63, 63, 63, 295, 63, 63, 297, 291, 306, 63, 63, 292, 63, 63, 305, 294, 63, 293, 63, 63, 296, 63, 63, 63, 63, 63, 298, 63, 63, 63, 300, 63, 63, 299, 63, 302, 63, 301, 63, 280, 278, 277, 304, 63, 276, 303, 63, 63, 63, 275, 63, 226, 63, 269, 268, 267, 63, 272, 272, 272, 273, 312, 312, 312, 63, 321, 63, 314, 281, 281, 281, 236, 319, 63, 283, 281, 281, 281, 281, 281, 281, 283, 63, 63, 283, 63, 63, 320, 63, 63, 325, 63, 63, 324, 63, 63, 63, 63, 322, 329, 323, 254, 327, 63, 63, 63, 63, 63, 63, 63, 63, 328, 63, 63, 63, 63, 63, 63, 63, 330, 63, 176, 331, 63, 232, 231, 226, 63, 224, 312, 312, 312, 273, 63, 63, 314, 63, 342, 63, 312, 312, 312, 312, 312, 312, 314, 341, 63, 314, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 223, 63, 344, 63, 343, 109, 63, 346, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 347, 63, 63, 63, 356, 63, 355, 63, 63, 358, 63, 365, 63, 63, 63, 366, 63, 63, 63, 63, 63, 359, 222, 63, 176, 63, 63, 174, 173, 370, 63, 63, 54, 111, 63, 63, 63, 63, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 56, 109, 166, 60, 56, 56, 63, 63, 63, 54, 63, 63, 111, 63, 63, 63, 104, 104, 104, 104, 104, 104, 104, 111, 104, 104, 104, 106, 106, 109, 106, 106, 106, 106, 106, 106, 106, 106, 108, 108, 108, 108, 108, 107, 108, 108, 108, 108, 108, 110, 105, 103, 61, 60, 110, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 116, 59, 58, 57, 116, 116, 117, 117, 372, 40, 117, 117, 117, 117, 117, 117, 117, 122, 122, 122, 122, 372, 372, 372, 372, 372, 122, 167, 372, 372, 372, 167, 167, 172, 172, 172, 172, 372, 372, 372, 372, 372, 172, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 178, 178, 178, 372, 178, 178, 372, 178, 178, 178, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 228, 228, 228, 372, 228, 228, 372, 228, 228, 228, 237, 237, 237, 237, 372, 372, 372, 372, 372, 237, 274, 274, 274, 274, 372, 372, 372, 372, 372, 274, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 282, 282, 282, 372, 282, 282, 372, 372, 282, 282, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 313, 313, 313, 372, 313, 313, 372, 372, 313, 313, 9, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372 } ;static yyconst short int yy_chk[1179] = { 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, 3, 4, 7, 5, 6, 13, 7, 13, 3, 4, 5, 6, 8, 11, 11, 11, 8, 12, 12, 12, 14, 367, 22, 22, 22, 363, 362, 14, 22, 23, 23, 23, 22, 26, 25, 23, 29, 26, 361, 23, 25, 354, 35, 25, 28, 353, 351, 26, 25, 349, 27, 26, 25, 28, 29, 28, 23, 24, 24, 24, 35, 63, 28, 24, 27, 30, 30, 24, 68, 348, 27, 31, 27, 30, 345, 32, 33, 30, 24, 63, 31, 27, 27, 30, 32, 33, 68, 34, 36, 31, 33, 340, 36, 32, 33, 66, 24, 34, 34, 66, 37, 36, 37, 38, 39, 34, 38, 64, 39, 64, 36, 39, 38, 66, 338, 37, 50, 50, 50, 337, 37, 38, 53, 53, 53, 53, 39, 336, 53, 55, 55, 55, 53, 335, 334, 55, 62, 62, 62, 55, 333, 55, 62, 67, 69, 67, 62, 65, 65, 65, 65, 70, 71, 69, 72, 72, 73, 72, 72, 70, 73, 67, 69, 71, 74, 76, 77, 77, 79, 70, 71, 74, 83, 80, 78, 72, 78, 76, 73, 81, 78, 79, 74, 76, 80, 77, 79, 82, 81, 326, 83, 80, 85, 318, 78, 84, 84, 81, 90, 87, 82, 91, 86, 317, 86, 82, 89, 84, 84, 98, 85, 86, 89, 84, 87, 92, 90, 87, 95, 91, 86, 88, 88, 88, 89, 93, 92, 98, 96, 93, 97, 99, 94, 92, 95, 114, 95, 114, 134, 96, 94, 97, 88, 93, 94, 94, 96, 94, 97, 99, 94, 100, 101, 102, 123, 88, 134, 102, 123, 135, 88, 100, 316, 101, 115, 115, 115, 115, 139, 100, 101, 102, 111, 111, 111, 111, 123, 135, 111, 113, 113, 113, 111, 124, 315, 113, 139, 124, 314, 113, 120, 120, 120, 120, 122, 122, 122, 125, 126, 128, 122, 124, 127, 130, 122, 310, 129, 130, 132, 125, 126, 126, 129, 128, 127, 125, 126, 128, 132, 131, 127, 131, 137, 133, 129, 130, 132, 133, 136, 138, 136, 138, 140, 141, 142, 137, 143, 131, 144, 140, 137, 133, 145, 142, 147, 146, 309, 144, 136, 138, 140, 141, 142, 149, 143, 146, 144, 149, 308, 306, 145, 150, 147, 146, 148, 148, 148, 150, 151, 153, 148, 149, 152, 152, 148, 155, 151, 156, 154, 150, 157, 153, 154, 158, 162, 159, 151, 153, 158, 155, 152, 156, 160, 155, 159, 156, 160, 148, 157, 161, 154, 163, 162, 159, 164, 165, 158, 161, 305, 163, 160, 165, 164, 170, 170, 170, 170, 161, 179, 163, 179, 181, 164, 165, 172, 172, 172, 294, 283, 183, 172, 279, 278, 181, 172, 176, 176, 176, 176, 181, 184, 176, 177, 177, 177, 176, 182, 183, 177, 178, 178, 178, 177, 184, 182, 178, 191, 186, 184, 178, 180, 180, 180, 180, 182, 185, 186, 188, 187, 185, 187, 188, 190, 189, 191, 186, 196, 192, 193, 193, 190, 192, 194, 185, 195, 197, 187, 189, 197, 188, 190, 189, 194, 198, 196, 192, 193, 199, 195, 200, 194, 201, 195, 197, 202, 203, 205, 206, 205, 207, 200, 198, 208, 209, 211, 199, 277, 200, 212, 201, 211, 208, 202, 203, 217, 206, 205, 207, 210, 212, 208, 209, 211, 213, 215, 210, 212, 214, 218, 214, 215, 216, 217, 216, 213, 219, 210, 220, 221, 219, 275, 213, 215, 229, 238, 229, 218, 214, 237, 237, 237, 216, 273, 219, 237, 220, 221, 226, 226, 226, 226, 239, 238, 226, 227, 227, 227, 226, 271, 270, 227, 228, 228, 228, 227, 240, 241, 228, 244, 239, 241, 228, 230, 230, 230, 230, 235, 235, 235, 235, 243, 242, 245, 240, 246, 247, 244, 249, 241, 242, 246, 243, 269, 245, 247, 248, 248, 250, 243, 242, 245, 251, 246, 247, 252, 249, 255, 253, 257, 258, 250, 268, 256, 248, 251, 250, 259, 267, 254, 251, 253, 261, 252, 256, 255, 253, 257, 258, 260, 259, 256, 262, 263, 261, 259, 264, 260, 265, 263, 261, 262, 266, 236, 234, 233, 265, 260, 232, 264, 262, 263, 286, 231, 264, 225, 265, 224, 223, 222, 266, 272, 272, 272, 272, 274, 274, 274, 284, 287, 286, 274, 280, 280, 280, 280, 284, 285, 280, 281, 281, 281, 282, 282, 282, 281, 284, 287, 282, 288, 290, 285, 289, 291, 292, 285, 293, 291, 295, 296, 297, 299, 288, 300, 289, 204, 296, 288, 290, 301, 289, 291, 292, 302, 293, 298, 295, 296, 297, 299, 298, 300, 303, 301, 304, 175, 304, 301, 174, 173, 171, 302, 169, 311, 311, 311, 311, 319, 298, 311, 303, 320, 304, 312, 312, 312, 313, 313, 313, 312, 319, 321, 313, 322, 323, 319, 324, 325, 327, 320, 329, 328, 331, 168, 341, 324, 342, 323, 167, 321, 328, 322, 323, 330, 324, 325, 327, 344, 329, 328, 331, 330, 341, 343, 342, 344, 346, 343, 356, 347, 346, 330, 355, 359, 355, 344, 358, 358, 365, 366, 370, 343, 347, 166, 346, 121, 356, 347, 119, 118, 365, 359, 355, 116, 112, 358, 365, 366, 370, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 377, 110, 103, 60, 377, 377, 378, 378, 378, 56, 378, 378, 52, 378, 378, 378, 379, 379, 379, 379, 379, 379, 379, 51, 379, 379, 379, 380, 380, 49, 380, 380, 380, 380, 380, 380, 380, 380, 381, 381, 381, 381, 381, 46, 381, 381, 381, 381, 381, 382, 42, 40, 20, 19, 382, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 384, 18, 17, 16, 384, 384, 385, 385, 9, 2, 385, 385, 385, 385, 385, 385, 385, 386, 386, 386, 386, 0, 0, 0, 0, 0, 386, 387, 0, 0, 0, 387, 387, 388, 388, 388, 388, 0, 0, 0, 0, 0, 388, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 390, 390, 390, 0, 390, 390, 0, 390, 390, 390, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 392, 392, 392, 0, 392, 392, 0, 392, 392, 392, 393, 393, 393, 393, 0, 0, 0, 0, 0, 393, 394, 394, 394, 394, 0, 0, 0, 0, 0, 394, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 396, 396, 396, 0, 396, 396, 0, 0, 396, 396, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 398, 398, 398, 0, 398, 398, 0, 0, 398, 398, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372 } ;static yy_state_type yy_last_accepting_state;static char *yy_last_accepting_cpos;/* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */#define REJECT reject_used_but_not_detected#define yymore() yymore_used_but_not_detected#define YY_MORE_ADJ 0#define YY_RESTORE_YY_MORE_OFFSETchar *yytext;#line 1 "scan.l"#define INITIAL 0#line 2 "scan.l"/*------------------------------------------------------------------------- * * scan.l - Scanner for the PL/pgSQL * procedural language * * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION * $PostgreSQL: pgsql/src/pl/plpgsql/src/scan.l,v 1.60 2008/01/01 19:46:00 momjian Exp $ * *------------------------------------------------------------------------- */#include "plpgsql.h"#include "mb/pg_wchar.h"/* No reason to constrain amount of data slurped */#define YY_READ_BUF_SIZE 16777216/* Avoid exit() on fatal scanner errors (a bit ugly -- see yy_fatal_error) */#undef fprintf#define fprintf(file, fmt, msg) ereport(ERROR, (errmsg_internal("%s", msg)))/* Handles to the buffer that the lexer uses internally */static YY_BUFFER_STATE scanbufhandle;static char *scanbuf;static const char *scanstr; /* original input string */static int scanner_functype;static bool scanner_typereported;static int pushback_token;static bool have_pushback_token;static const char *cur_line_start;static int cur_line_num;static char *dolqstart; /* current $foo$ quote start string */static int dolqlen; /* signal to plpgsql_get_string_value */bool plpgsql_SpaceScanned = false;#define YY_NEVER_INTERACTIVE 1#define YY_NO_UNPUT 1#define IN_STRING 1#define IN_COMMENT 2#define IN_DOLLARQUOTE 3/* $foo$ style quotes ("dollar quoting") * copied straight from the backend SQL parser */#line 825 "pl_scan.c"/* Macros after this point can all be overridden by user definitions in * section 1. */#ifndef YY_SKIP_YYWRAP#ifdef __cplusplusextern "C" int yywrap YY_PROTO(( void ));#elseextern int yywrap YY_PROTO(( void ));#endif#endif#ifndef YY_NO_UNPUTstatic void yyunput YY_PROTO(( int c, char *buf_ptr ));#endif#ifndef yytext_ptrstatic void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));#endif#ifdef YY_NEED_STRLENstatic int yy_flex_strlen YY_PROTO(( yyconst char * ));#endif#ifndef YY_NO_INPUT#ifdef __cplusplusstatic int yyinput YY_PROTO(( void ));#elsestatic int input YY_PROTO(( void ));#endif#endif#if YY_STACK_USEDstatic int yy_start_stack_ptr = 0;static int yy_start_stack_depth = 0;static int *yy_start_stack = 0;#ifndef YY_NO_PUSH_STATEstatic void yy_push_state YY_PROTO(( int new_state ));#endif#ifndef YY_NO_POP_STATEstatic void yy_pop_state YY_PROTO(( void ));#endif#ifndef YY_NO_TOP_STATEstatic int yy_top_state YY_PROTO(( void ));#endif#else#define YY_NO_PUSH_STATE 1#define YY_NO_POP_STATE 1#define YY_NO_TOP_STATE 1#endif#ifdef YY_MALLOC_DECLYY_MALLOC_DECL#else#if __STDC__#ifndef __cplusplus#include <stdlib.h>#endif#else/* Just try to get by without declaring the routines. This will fail * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) * or sizeof(void*) != sizeof(int). */#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?