proton
0
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
proton
scanner.h
Go to the documentation of this file.
1
#ifndef PROTON_SCANNER_H
2
#define PROTON_SCANNER_H 1
3
4
/*
5
*
6
* Licensed to the Apache Software Foundation (ASF) under one
7
* or more contributor license agreements. See the NOTICE file
8
* distributed with this work for additional information
9
* regarding copyright ownership. The ASF licenses this file
10
* to you under the Apache License, Version 2.0 (the
11
* "License"); you may not use this file except in compliance
12
* with the License. You may obtain a copy of the License at
13
*
14
* http://www.apache.org/licenses/LICENSE-2.0
15
*
16
* Unless required by applicable law or agreed to in writing,
17
* software distributed under the License is distributed on an
18
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19
* KIND, either express or implied. See the License for the
20
* specific language governing permissions and limitations
21
* under the License.
22
*
23
*/
24
25
#include <
proton/import_export.h
>
26
#include <sys/types.h>
27
#include <stdarg.h>
28
29
#ifdef __cplusplus
30
extern
"C"
{
31
#endif
32
33
typedef
enum
{
34
PN_TOK_LBRACE
,
35
PN_TOK_RBRACE
,
36
PN_TOK_LBRACKET
,
37
PN_TOK_RBRACKET
,
38
PN_TOK_EQUAL
,
39
PN_TOK_COMMA
,
40
PN_TOK_POS
,
41
PN_TOK_NEG
,
42
PN_TOK_DOT
,
43
PN_TOK_AT
,
44
PN_TOK_DOLLAR
,
45
PN_TOK_BINARY
,
46
PN_TOK_STRING
,
47
PN_TOK_SYMBOL
,
48
PN_TOK_ID
,
49
PN_TOK_FLOAT
,
50
PN_TOK_INT
,
51
PN_TOK_TRUE
,
52
PN_TOK_FALSE
,
53
PN_TOK_NULL
,
54
PN_TOK_EOS
,
55
PN_TOK_ERR
56
}
pn_token_type_t
;
57
58
typedef
struct
pn_scanner_t
pn_scanner_t
;
59
60
typedef
struct
{
61
pn_token_type_t
type
;
62
const
char
*
start
;
63
size_t
size
;
64
}
pn_token_t
;
65
66
PN_EXTERN
pn_scanner_t
*
pn_scanner
(
void
);
67
PN_EXTERN
void
pn_scanner_free
(
pn_scanner_t
*scanner);
68
PN_EXTERN
pn_token_t
pn_scanner_token
(
pn_scanner_t
*scanner);
69
PN_EXTERN
int
pn_scanner_err
(
pn_scanner_t
*scanner,
int
code,
const
char
*fmt, ...);
70
PN_EXTERN
int
pn_scanner_verr
(
pn_scanner_t
*scanner,
int
code,
const
char
*fmt, va_list ap);
71
PN_EXTERN
void
pn_scanner_line_info
(
pn_scanner_t
*scanner,
int
*line,
int
*col);
72
PN_EXTERN
int
pn_scanner_errno
(
pn_scanner_t
*scanner);
73
PN_EXTERN
const
char
*
pn_scanner_error
(
pn_scanner_t
*scanner);
74
PN_EXTERN
int
pn_scanner_start
(
pn_scanner_t
*scanner,
const
char
*input);
75
PN_EXTERN
int
pn_scanner_scan
(
pn_scanner_t
*scanner);
76
PN_EXTERN
int
pn_scanner_shift
(
pn_scanner_t
*scanner);
77
78
#ifdef __cplusplus
79
}
80
#endif
81
82
#endif
/* scanner.h */
Generated on Thu Jul 10 2014 02:10:59 for proton by
1.8.3.1