]> granicus.if.org Git - postgresql/commitdiff
Minor code cleanups in pgbench expression support.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 29 Mar 2015 17:06:59 +0000 (13:06 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 29 Mar 2015 17:06:59 +0000 (13:06 -0400)
Get rid of unnecessary expr_yylex declaration (we haven't supported
flex 2.5.4 in a long time, and even if we still did, the declaration in
pgbench.h makes this one unnecessary and inappropriate).  Fix copyright
dates, improve some layout choices, etc.

contrib/pgbench/exprparse.y
contrib/pgbench/exprscan.l
contrib/pgbench/pgbench.h

index 243c6b9c38daa5cf76de393b5b77b761a3cba9f1..e68631e3e6196525f041c03c9010d7fc0165b6a0 100644 (file)
@@ -4,7 +4,7 @@
  * exprparse.y
  *       bison grammar for a simple expression syntax
  *
- * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1996-2015, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *-------------------------------------------------------------------------
@@ -36,9 +36,11 @@ static PgBenchExpr *make_op(char operator, PgBenchExpr *lexpr,
 %type <expr> expr
 %type <ival> INTEGER
 %type <str> VARIABLE
+
 %token INTEGER VARIABLE
 %token CHAR_ERROR /* never used, will raise a syntax error */
 
+/* Precedence: lowest to highest */
 %left  '+' '-'
 %left  '*' '/' '%'
 %right UMINUS
index 4c9229cd9cf348ad2a202c0d08143382c4812d85..6e3331d908e02b9d5ad4d01435490e6577822a2e 100644 (file)
@@ -4,7 +4,7 @@
  * exprscan.l
  *       a lexical scanner for a simple expression syntax
  *
- * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1996-2015, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *-------------------------------------------------------------------------
@@ -17,10 +17,6 @@ static int   yyline = 0, yycol = 0;
 static YY_BUFFER_STATE scanbufhandle;
 static char *scanbuf;
 static int     scanbuflen;
-
-/* flex 2.5.4 doesn't bother with a decl for this */
-int expr_yylex(void);
-
 %}
 
 %option 8bit
@@ -32,7 +28,6 @@ int expr_yylex(void);
 %option warn
 %option prefix="expr_yy"
 
-non_newline            [^\n\r]
 space                  [ \t\r\f]
 
 %%
@@ -44,15 +39,24 @@ space                       [ \t\r\f]
 "%"                            { yycol += yyleng; return '%'; }
 "("                            { yycol += yyleng; return '('; }
 ")"                            { yycol += yyleng; return ')'; }
-:[a-zA-Z0-9_]+ { yycol += yyleng; yylval.str = pg_strdup(yytext + 1); return VARIABLE; }
-[0-9]+                 { yycol += yyleng; yylval.ival = strtoint64(yytext); return INTEGER; }
+
+:[a-zA-Z0-9_]+ {
+                                       yycol += yyleng;
+                                       yylval.str = pg_strdup(yytext + 1);
+                                       return VARIABLE;
+                               }
+[0-9]+                 {
+                                       yycol += yyleng;
+                                       yylval.ival = strtoint64(yytext);
+                                       return INTEGER;
+                               }
 
 [\n]                   { yycol = 0; yyline++; }
-{space}                        { yycol += yyleng; /* ignore */ }
+{space}+               { yycol += yyleng; /* ignore */ }
 
 .                              {
                                        yycol += yyleng;
-                                       fprintf(stderr, "unexpected character '%s'\n", yytext);
+                                       fprintf(stderr, "unexpected character \"%s\"\n", yytext);
                                        return CHAR_ERROR;
                                }
 %%
@@ -64,7 +68,6 @@ yyerror(const char *message)
         * so the interesting location information is the column number */
        fprintf(stderr, "%s at column %d\n", message, yycol);
        /* go on to raise the error from pgbench with more information */
-       /* exit(1); */
 }
 
 /*
index 128bf110d77d68eba440d3e4f019c260188e5967..0396e551f24042eadea1f2d6757f9dda9a18343e 100644 (file)
@@ -2,7 +2,7 @@
  *
  * pgbench.h
  *
- * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1996-2015, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *-------------------------------------------------------------------------
@@ -18,7 +18,6 @@ typedef enum PgBenchExprType
        ENODE_OPERATOR
 } PgBenchExprType;
 
-struct PgBenchExpr;
 typedef struct PgBenchExpr PgBenchExpr;
 
 struct PgBenchExpr
@@ -53,4 +52,4 @@ extern void expr_scanner_finish(void);
 
 extern int64 strtoint64(const char *str);
 
-#endif
+#endif /* PGBENCH_H */