Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Grammar changes: the sclp non-terminal should always be followed by a scanpt. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | span-refactor |
Files: | files | file ages | folders |
SHA3-256: |
74a0181fc016fb0b7934188cfcc2ec26 |
User & Date: | drh 2017-12-24 17:01:54.828 |
Context
2017-12-27
| ||
19:27 | Merge recent enhancements from trunk. (check-in: 7637309135 user: drh tags: span-refactor) | |
2017-12-24
| ||
17:01 | Grammar changes: the sclp non-terminal should always be followed by a scanpt. (check-in: 74a0181fc0 user: drh tags: span-refactor) | |
14:14 | Improved parser tracing output. (check-in: c4951833c2 user: drh tags: span-refactor) | |
Changes
Changes to src/parse.y.
︙ | ︙ | |||
571 572 573 574 575 576 577 | sclp(A) ::= selcollist(A) COMMA. sclp(A) ::= . {A = 0;} selcollist(A) ::= sclp(A) scanpt(B) expr(X) scanpt(Z) as(Y). { A = sqlite3ExprListAppend(pParse, A, X); if( Y.n>0 ) sqlite3ExprListSetName(pParse, A, &Y, 1); sqlite3ExprListSetSpan(pParse,A,B,Z); } | | | 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 | sclp(A) ::= selcollist(A) COMMA. sclp(A) ::= . {A = 0;} selcollist(A) ::= sclp(A) scanpt(B) expr(X) scanpt(Z) as(Y). { A = sqlite3ExprListAppend(pParse, A, X); if( Y.n>0 ) sqlite3ExprListSetName(pParse, A, &Y, 1); sqlite3ExprListSetSpan(pParse,A,B,Z); } selcollist(A) ::= sclp(A) scanpt STAR. { Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); A = sqlite3ExprListAppend(pParse, A, p); } selcollist(A) ::= sclp(A) scanpt nm(X) DOT STAR. { Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &X, 1); Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); |
︙ | ︙ |