~ubuntu-branches/ubuntu/trusty/postgis/trusty-security

« back to all changes in this revision

Viewing changes to liblwgeom/wktparse.lex

  • Committer: Bazaar Package Importer
  • Author(s): Francesco Paolo Lovergine
  • Date: 2009-12-11 13:10:34 UTC
  • mfrom: (1.1.9 upstream) (5.2.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20091211131034-wmsz69wxvt95pe5r
Tags: 1.4.0-2
* Upload to unstable.
* Better parameterized debian/rules against postgis $(VERSION).
* Added dblatex and libcunit1-dev among build-deps.
* Added postgis_comments.sql to contrib/ SQL templates.
* Dropping 8.3 support, no more supported for squeeze.
  (closes: #559587)
* Do not stop on error in postrm if the target dir does not exist.
  (closes: #560409)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Written by Ralph Mason ralph.mason<at>telogis.com
 
3
 *
 
4
 * Copyright Telogis 2004
 
5
 * www.telogis.com
 
6
 *
 
7
 */
 
8
 
 
9
%x vals_ok
 
10
%{
 
11
#include "wktparse.tab.h"
 
12
#include <stdlib.h> /* need stdlib for atof() definition */
 
13
 
 
14
void init_parser(const char *src);
 
15
void close_parser(void);
 
16
int lwg_parse_yywrap(void);
 
17
int lwg_parse_yylex(void);
 
18
 
 
19
static YY_BUFFER_STATE buf_state;
 
20
   void init_parser(const char *src) { BEGIN(0);buf_state = lwg_parse_yy_scan_string(src); }
 
21
   void close_parser() { lwg_parse_yy_delete_buffer(buf_state); }
 
22
   int lwg_parse_yywrap(void){ return 1; }
 
23
 
 
24
/* Macro to keep track of the current parse position */
 
25
#define UPDATE_YYLLOC() (lwg_parse_yylloc.last_column += yyleng)
 
26
 
 
27
%}
 
28
 
 
29
%%
 
30
 
 
31
<vals_ok>[-|\+]?[0-9]+(\.[0-9]+)?([Ee](\+|-)?[0-9]+)? { lwg_parse_yylval.value=atof(lwg_parse_yytext); UPDATE_YYLLOC(); return VALUE; }
 
32
<vals_ok>[-|\+]?(\.[0-9]+)([Ee](\+|-)?[0-9]+)? { lwg_parse_yylval.value=atof(lwg_parse_yytext); UPDATE_YYLLOC(); return VALUE; }
 
33
 
 
34
<INITIAL>00[0-9A-F]* {  lwg_parse_yylval.wkb=lwg_parse_yytext; return WKB;}
 
35
<INITIAL>01[0-9A-F]* {  lwg_parse_yylval.wkb=lwg_parse_yytext; return WKB;}
 
36
 
 
37
<*>POINT        { UPDATE_YYLLOC(); return POINT; }
 
38
<*>POINTM       { UPDATE_YYLLOC(); return POINTM; }
 
39
<*>LINESTRING { UPDATE_YYLLOC(); return LINESTRING; }
 
40
<*>LINESTRINGM { UPDATE_YYLLOC(); return LINESTRINGM; }
 
41
<*>CIRCULARSTRING { UPDATE_YYLLOC(); return CIRCULARSTRING; }
 
42
<*>CIRCULARSTRINGM { UPDATE_YYLLOC(); return CIRCULARSTRINGM; }
 
43
<*>POLYGON { UPDATE_YYLLOC(); return POLYGON; }
 
44
<*>POLYGONM { UPDATE_YYLLOC(); return POLYGONM; }
 
45
<*>COMPOUNDCURVE { UPDATE_YYLLOC(); return COMPOUNDCURVE; }
 
46
<*>COMPOUNDCURVEM { UPDATE_YYLLOC(); return COMPOUNDCURVEM; }
 
47
<*>CURVEPOLYGON { UPDATE_YYLLOC(); return CURVEPOLYGON; }
 
48
<*>CURVEPOLYGONM { UPDATE_YYLLOC(); return CURVEPOLYGONM; }
 
49
<*>MULTIPOINT { UPDATE_YYLLOC(); return MULTIPOINT; }
 
50
<*>MULTIPOINTM { UPDATE_YYLLOC(); return MULTIPOINTM; }
 
51
<*>MULTILINESTRING { UPDATE_YYLLOC(); return MULTILINESTRING; }
 
52
<*>MULTILINESTRINGM { UPDATE_YYLLOC(); return MULTILINESTRINGM; }
 
53
<*>MULTICURVE { UPDATE_YYLLOC(); return MULTICURVE; }
 
54
<*>MULTICURVEM { UPDATE_YYLLOC(); return MULTICURVEM; }
 
55
<*>MULTIPOLYGON { UPDATE_YYLLOC(); return MULTIPOLYGON; }
 
56
<*>MULTIPOLYGONM { UPDATE_YYLLOC(); return MULTIPOLYGONM; }
 
57
<*>MULTISURFACE { UPDATE_YYLLOC(); return MULTISURFACE; }
 
58
<*>MULTISURFACEM { UPDATE_YYLLOC(); return MULTISURFACEM; }
 
59
<*>GEOMETRYCOLLECTION { UPDATE_YYLLOC(); return GEOMETRYCOLLECTION; }
 
60
<*>GEOMETRYCOLLECTIONM { UPDATE_YYLLOC(); return GEOMETRYCOLLECTIONM; }
 
61
<*>SRID { BEGIN(vals_ok); UPDATE_YYLLOC(); return SRID; }
 
62
<*>EMPTY { UPDATE_YYLLOC(); return EMPTY; }
 
63
 
 
64
<*>\(   { BEGIN(vals_ok); UPDATE_YYLLOC(); return LPAREN; }
 
65
<*>\)   { UPDATE_YYLLOC(); return RPAREN; }
 
66
<*>,    { UPDATE_YYLLOC(); return COMMA ; }
 
67
<*>=    { UPDATE_YYLLOC(); return EQUALS ; }
 
68
<*>;    { BEGIN(0); UPDATE_YYLLOC(); return SEMICOLON; }
 
69
<*>[ \t\n\r]+ /*eat whitespace*/ { UPDATE_YYLLOC(); }
 
70
<*>.    { return lwg_parse_yytext[0]; }
 
71
 
 
72
%%
 
73