*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
*/
#include <stdio.h>
+#include <babeltrace/babeltrace-internal.h>
#include "ctf-scanner.h"
#include "ctf-parser.h"
#include "ctf-ast.h"
-extern
+BT_HIDDEN
void setstring(struct ctf_scanner *scanner, YYSTYPE *lvalp, const char *src);
static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
__attribute__((unused));
static int input (yyscan_t yyscanner) __attribute__((unused));
-#define printf_dbg(fmt, args...) fprintf(stderr, "%s: " fmt, __func__, ##args)
-
%}
%x comment_ml comment_sl string_lit char_const
"." return DOT;
= return EQUAL;
"," return COMMA;
+align setstring(yyextra, yylval, yytext); return TOK_ALIGN;
const setstring(yyextra, yylval, yytext); return CONST;
char setstring(yyextra, yylval, yytext); return CHAR;
+clock setstring(yyextra, yylval, yytext); return CLOCK;
double setstring(yyextra, yylval, yytext); return DOUBLE;
enum setstring(yyextra, yylval, yytext); return ENUM;
+env setstring(yyextra, yylval, yytext); return ENV;
event setstring(yyextra, yylval, yytext); return EVENT;
floating_point setstring(yyextra, yylval, yytext); return FLOATING_POINT;
float setstring(yyextra, yylval, yytext); return FLOAT;
string setstring(yyextra, yylval, yytext); return STRING;
struct setstring(yyextra, yylval, yytext); return STRUCT;
trace setstring(yyextra, yylval, yytext); return TRACE;
+callsite setstring(yyextra, yylval, yytext); return CALLSITE;
typealias setstring(yyextra, yylval, yytext); return TYPEALIAS;
typedef setstring(yyextra, yylval, yytext); return TYPEDEF;
unsigned setstring(yyextra, yylval, yytext); return UNSIGNED;
[1-9]{DIGIT}*{INTEGER_SUFFIX}? setstring(yyextra, yylval, yytext); return DECIMAL_CONSTANT;
0{OCTALDIGIT}*{INTEGER_SUFFIX}? setstring(yyextra, yylval, yytext); return OCTAL_CONSTANT;
0[xX]{HEXDIGIT}+{INTEGER_SUFFIX}? setstring(yyextra, yylval, yytext); return HEXADECIMAL_CONSTANT;
-{IDENTIFIER} printf_dbg("<IDENTIFIER %s>\n", yytext); setstring(yyextra, yylval, yytext); if (is_type(yyextra, yytext)) return ID_TYPE; else return IDENTIFIER;
+{IDENTIFIER} printf_debug("<IDENTIFIER %s>\n", yytext); setstring(yyextra, yylval, yytext); if (is_type(yyextra, yytext)) return ID_TYPE; else return IDENTIFIER;
[ \t\n]+ ; /* ignore */
. return ERROR;
%%