1Terminaux inutilisés dans la grammaire 2 3 "string (some input, perhaps)" 4 "input" 5 6 7Grammaire 8 9 0 $accept: input "end of command" 10 11 1 input: command 12 2 | input "# (pound sign)" command 13 3 | ε 14 15 4 command: parameters 16 5 | full_expression 17 18 6 parameters: parameter 19 7 | parameters parameter 20 8 | parameters "request id (-r %d)" 21 22 9 parameter: "identifier (command or function name)" ": (colon)" "digits (numbers)" 23 10 | "identifier (command or function name)" ": (colon)" "# (pound sign followed by digits)" "digits (numbers)" 24 11 | "protocol (file://)" "identifier (command or function name)" ": (colon)" "digits (numbers)" 25 12 | "protocol (file://)" "identifier (command or function name)" ": (colon)" "# (pound sign followed by digits)" "digits (numbers)" 26 13 | "identifier (command or function name)" ":: (double colon)" "identifier (command or function name)" 27 14 | "identifier (command or function name)" ":: (double colon)" "identifier (command or function name)" "# (pound sign followed by digits)" "digits (numbers)" 28 15 | "identifier (command or function name)" "# (pound sign followed by digits)" "digits (numbers)" 29 16 | "if (condition)" "input (input string or data)" 30 17 | "opcode" 31 18 | "address" 32 19 | "literal (string)" 33 20 | "truthy (true, on, yes or enabled)" 34 21 | "falsy (false, off, no or disabled)" 35 22 | "digits (numbers)" 36 23 | "identifier (command or function name)" 37 38 24 req_id: "request id (-r %d)" 39 25 | ε 40 41 26 full_expression: "eval" req_id "input (input string or data)" 42 27 | "shell" req_id "input (input string or data)" 43 28 | "run" req_id 44 29 | "run" req_id "input (input string or data)" 45 46 47Terminaux, suivis des règles où ils apparaissent 48 49 "end of command" (0) 0 50 error (256) 51 "eval" (258) 26 52 "run" (259) 28 29 53 "shell" (260) 27 54 "if (condition)" (261) 16 55 "truthy (true, on, yes or enabled)" (262) 20 56 "falsy (false, off, no or disabled)" (263) 21 57 "string (some input, perhaps)" (264) 58 ": (colon)" (265) 9 10 11 12 59 ":: (double colon)" (266) 13 14 60 "# (pound sign followed by digits)" (267) 10 12 14 15 61 "# (pound sign)" (268) 2 62 "protocol (file://)" (269) 11 12 63 "digits (numbers)" (270) 9 10 11 12 14 15 22 64 "literal (string)" (271) 19 65 "address" (272) 18 66 "opcode" (273) 17 67 "identifier (command or function name)" (274) 9 10 11 12 13 14 15 23 68 "input (input string or data)" (275) 16 26 27 29 69 "input" (276) 70 "request id (-r %d)" (277) 8 24 71 72 73Non-terminaux, suivis des règles où ils apparaissent 74 75 $accept (23) 76 à gauche: 0 77 input (24) 78 à gauche: 1 2 3 79 à droite: 0 2 80 command (25) 81 à gauche: 4 5 82 à droite: 1 2 83 parameters (26) 84 à gauche: 6 7 8 85 à droite: 4 7 8 86 parameter (27) 87 à gauche: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 88 à droite: 6 7 89 req_id (28) 90 à gauche: 24 25 91 à droite: 26 27 28 29 92 full_expression (29) 93 à gauche: 26 27 28 29 94 à droite: 5 95 96 97État 0 98 99 0 $accept: • input "end of command" 100 101 "eval" décalage et aller à l'état 1 102 "run" décalage et aller à l'état 2 103 "shell" décalage et aller à l'état 3 104 "if (condition)" décalage et aller à l'état 4 105 "truthy (true, on, yes or enabled)" décalage et aller à l'état 5 106 "falsy (false, off, no or disabled)" décalage et aller à l'état 6 107 "protocol (file://)" décalage et aller à l'état 7 108 "digits (numbers)" décalage et aller à l'état 8 109 "literal (string)" décalage et aller à l'état 9 110 "address" décalage et aller à l'état 10 111 "opcode" décalage et aller à l'état 11 112 "identifier (command or function name)" décalage et aller à l'état 12 113 114 $défaut réduction par utilisation de la règle 3 (input) 115 116 input aller à l'état 13 117 command aller à l'état 14 118 parameters aller à l'état 15 119 parameter aller à l'état 16 120 full_expression aller à l'état 17 121 122 123État 1 124 125 26 full_expression: "eval" • req_id "input (input string or data)" 126 127 "request id (-r %d)" décalage et aller à l'état 18 128 129 $défaut réduction par utilisation de la règle 25 (req_id) 130 131 req_id aller à l'état 19 132 133 134État 2 135 136 28 full_expression: "run" • req_id 137 29 | "run" • req_id "input (input string or data)" 138 139 "request id (-r %d)" décalage et aller à l'état 18 140 141 $défaut réduction par utilisation de la règle 25 (req_id) 142 143 req_id aller à l'état 20 144 145 146État 3 147 148 27 full_expression: "shell" • req_id "input (input string or data)" 149 150 "request id (-r %d)" décalage et aller à l'état 18 151 152 $défaut réduction par utilisation de la règle 25 (req_id) 153 154 req_id aller à l'état 21 155 156 157État 4 158 159 16 parameter: "if (condition)" • "input (input string or data)" 160 161 "input (input string or data)" décalage et aller à l'état 22 162 163 164État 5 165 166 20 parameter: "truthy (true, on, yes or enabled)" • 167 168 $défaut réduction par utilisation de la règle 20 (parameter) 169 170 171État 6 172 173 21 parameter: "falsy (false, off, no or disabled)" • 174 175 $défaut réduction par utilisation de la règle 21 (parameter) 176 177 178État 7 179 180 11 parameter: "protocol (file://)" • "identifier (command or function name)" ": (colon)" "digits (numbers)" 181 12 | "protocol (file://)" • "identifier (command or function name)" ": (colon)" "# (pound sign followed by digits)" "digits (numbers)" 182 183 "identifier (command or function name)" décalage et aller à l'état 23 184 185 186État 8 187 188 22 parameter: "digits (numbers)" • 189 190 $défaut réduction par utilisation de la règle 22 (parameter) 191 192 193État 9 194 195 19 parameter: "literal (string)" • 196 197 $défaut réduction par utilisation de la règle 19 (parameter) 198 199 200État 10 201 202 18 parameter: "address" • 203 204 $défaut réduction par utilisation de la règle 18 (parameter) 205 206 207État 11 208 209 17 parameter: "opcode" • 210 211 $défaut réduction par utilisation de la règle 17 (parameter) 212 213 214État 12 215 216 9 parameter: "identifier (command or function name)" • ": (colon)" "digits (numbers)" 217 10 | "identifier (command or function name)" • ": (colon)" "# (pound sign followed by digits)" "digits (numbers)" 218 13 | "identifier (command or function name)" • ":: (double colon)" "identifier (command or function name)" 219 14 | "identifier (command or function name)" • ":: (double colon)" "identifier (command or function name)" "# (pound sign followed by digits)" "digits (numbers)" 220 15 | "identifier (command or function name)" • "# (pound sign followed by digits)" "digits (numbers)" 221 23 | "identifier (command or function name)" • 222 223 ": (colon)" décalage et aller à l'état 24 224 ":: (double colon)" décalage et aller à l'état 25 225 "# (pound sign followed by digits)" décalage et aller à l'état 26 226 227 $défaut réduction par utilisation de la règle 23 (parameter) 228 229 230État 13 231 232 0 $accept: input • "end of command" 233 2 input: input • "# (pound sign)" command 234 235 "end of command" décalage et aller à l'état 27 236 "# (pound sign)" décalage et aller à l'état 28 237 238 239État 14 240 241 1 input: command • 242 243 $défaut réduction par utilisation de la règle 1 (input) 244 245 246État 15 247 248 4 command: parameters • 249 7 parameters: parameters • parameter 250 8 | parameters • "request id (-r %d)" 251 252 "if (condition)" décalage et aller à l'état 4 253 "truthy (true, on, yes or enabled)" décalage et aller à l'état 5 254 "falsy (false, off, no or disabled)" décalage et aller à l'état 6 255 "protocol (file://)" décalage et aller à l'état 7 256 "digits (numbers)" décalage et aller à l'état 8 257 "literal (string)" décalage et aller à l'état 9 258 "address" décalage et aller à l'état 10 259 "opcode" décalage et aller à l'état 11 260 "identifier (command or function name)" décalage et aller à l'état 12 261 "request id (-r %d)" décalage et aller à l'état 29 262 263 $défaut réduction par utilisation de la règle 4 (command) 264 265 parameter aller à l'état 30 266 267 268État 16 269 270 6 parameters: parameter • 271 272 $défaut réduction par utilisation de la règle 6 (parameters) 273 274 275État 17 276 277 5 command: full_expression • 278 279 $défaut réduction par utilisation de la règle 5 (command) 280 281 282État 18 283 284 24 req_id: "request id (-r %d)" • 285 286 $défaut réduction par utilisation de la règle 24 (req_id) 287 288 289État 19 290 291 26 full_expression: "eval" req_id • "input (input string or data)" 292 293 "input (input string or data)" décalage et aller à l'état 31 294 295 296État 20 297 298 28 full_expression: "run" req_id • 299 29 | "run" req_id • "input (input string or data)" 300 301 "input (input string or data)" décalage et aller à l'état 32 302 303 $défaut réduction par utilisation de la règle 28 (full_expression) 304 305 306État 21 307 308 27 full_expression: "shell" req_id • "input (input string or data)" 309 310 "input (input string or data)" décalage et aller à l'état 33 311 312 313État 22 314 315 16 parameter: "if (condition)" "input (input string or data)" • 316 317 $défaut réduction par utilisation de la règle 16 (parameter) 318 319 320État 23 321 322 11 parameter: "protocol (file://)" "identifier (command or function name)" • ": (colon)" "digits (numbers)" 323 12 | "protocol (file://)" "identifier (command or function name)" • ": (colon)" "# (pound sign followed by digits)" "digits (numbers)" 324 325 ": (colon)" décalage et aller à l'état 34 326 327 328État 24 329 330 9 parameter: "identifier (command or function name)" ": (colon)" • "digits (numbers)" 331 10 | "identifier (command or function name)" ": (colon)" • "# (pound sign followed by digits)" "digits (numbers)" 332 333 "# (pound sign followed by digits)" décalage et aller à l'état 35 334 "digits (numbers)" décalage et aller à l'état 36 335 336 337État 25 338 339 13 parameter: "identifier (command or function name)" ":: (double colon)" • "identifier (command or function name)" 340 14 | "identifier (command or function name)" ":: (double colon)" • "identifier (command or function name)" "# (pound sign followed by digits)" "digits (numbers)" 341 342 "identifier (command or function name)" décalage et aller à l'état 37 343 344 345État 26 346 347 15 parameter: "identifier (command or function name)" "# (pound sign followed by digits)" • "digits (numbers)" 348 349 "digits (numbers)" décalage et aller à l'état 38 350 351 352État 27 353 354 0 $accept: input "end of command" • 355 356 $défaut accepter 357 358 359État 28 360 361 2 input: input "# (pound sign)" • command 362 363 "eval" décalage et aller à l'état 1 364 "run" décalage et aller à l'état 2 365 "shell" décalage et aller à l'état 3 366 "if (condition)" décalage et aller à l'état 4 367 "truthy (true, on, yes or enabled)" décalage et aller à l'état 5 368 "falsy (false, off, no or disabled)" décalage et aller à l'état 6 369 "protocol (file://)" décalage et aller à l'état 7 370 "digits (numbers)" décalage et aller à l'état 8 371 "literal (string)" décalage et aller à l'état 9 372 "address" décalage et aller à l'état 10 373 "opcode" décalage et aller à l'état 11 374 "identifier (command or function name)" décalage et aller à l'état 12 375 376 command aller à l'état 39 377 parameters aller à l'état 15 378 parameter aller à l'état 16 379 full_expression aller à l'état 17 380 381 382État 29 383 384 8 parameters: parameters "request id (-r %d)" • 385 386 $défaut réduction par utilisation de la règle 8 (parameters) 387 388 389État 30 390 391 7 parameters: parameters parameter • 392 393 $défaut réduction par utilisation de la règle 7 (parameters) 394 395 396État 31 397 398 26 full_expression: "eval" req_id "input (input string or data)" • 399 400 $défaut réduction par utilisation de la règle 26 (full_expression) 401 402 403État 32 404 405 29 full_expression: "run" req_id "input (input string or data)" • 406 407 $défaut réduction par utilisation de la règle 29 (full_expression) 408 409 410État 33 411 412 27 full_expression: "shell" req_id "input (input string or data)" • 413 414 $défaut réduction par utilisation de la règle 27 (full_expression) 415 416 417État 34 418 419 11 parameter: "protocol (file://)" "identifier (command or function name)" ": (colon)" • "digits (numbers)" 420 12 | "protocol (file://)" "identifier (command or function name)" ": (colon)" • "# (pound sign followed by digits)" "digits (numbers)" 421 422 "# (pound sign followed by digits)" décalage et aller à l'état 40 423 "digits (numbers)" décalage et aller à l'état 41 424 425 426État 35 427 428 10 parameter: "identifier (command or function name)" ": (colon)" "# (pound sign followed by digits)" • "digits (numbers)" 429 430 "digits (numbers)" décalage et aller à l'état 42 431 432 433État 36 434 435 9 parameter: "identifier (command or function name)" ": (colon)" "digits (numbers)" • 436 437 $défaut réduction par utilisation de la règle 9 (parameter) 438 439 440État 37 441 442 13 parameter: "identifier (command or function name)" ":: (double colon)" "identifier (command or function name)" • 443 14 | "identifier (command or function name)" ":: (double colon)" "identifier (command or function name)" • "# (pound sign followed by digits)" "digits (numbers)" 444 445 "# (pound sign followed by digits)" décalage et aller à l'état 43 446 447 $défaut réduction par utilisation de la règle 13 (parameter) 448 449 450État 38 451 452 15 parameter: "identifier (command or function name)" "# (pound sign followed by digits)" "digits (numbers)" • 453 454 $défaut réduction par utilisation de la règle 15 (parameter) 455 456 457État 39 458 459 2 input: input "# (pound sign)" command • 460 461 $défaut réduction par utilisation de la règle 2 (input) 462 463 464État 40 465 466 12 parameter: "protocol (file://)" "identifier (command or function name)" ": (colon)" "# (pound sign followed by digits)" • "digits (numbers)" 467 468 "digits (numbers)" décalage et aller à l'état 44 469 470 471État 41 472 473 11 parameter: "protocol (file://)" "identifier (command or function name)" ": (colon)" "digits (numbers)" • 474 475 $défaut réduction par utilisation de la règle 11 (parameter) 476 477 478État 42 479 480 10 parameter: "identifier (command or function name)" ": (colon)" "# (pound sign followed by digits)" "digits (numbers)" • 481 482 $défaut réduction par utilisation de la règle 10 (parameter) 483 484 485État 43 486 487 14 parameter: "identifier (command or function name)" ":: (double colon)" "identifier (command or function name)" "# (pound sign followed by digits)" • "digits (numbers)" 488 489 "digits (numbers)" décalage et aller à l'état 45 490 491 492État 44 493 494 12 parameter: "protocol (file://)" "identifier (command or function name)" ": (colon)" "# (pound sign followed by digits)" "digits (numbers)" • 495 496 $défaut réduction par utilisation de la règle 12 (parameter) 497 498 499État 45 500 501 14 parameter: "identifier (command or function name)" ":: (double colon)" "identifier (command or function name)" "# (pound sign followed by digits)" "digits (numbers)" • 502 503 $défaut réduction par utilisation de la règle 14 (parameter) 504