X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fctf%2Fmetadata%2Fctf-lexer.l;h=905da9916711831c1680479444f5b2898f88d846;hb=8c834e5a0a0881093d0a8c212cde27b318e7b11d;hp=ff4f8a51ba9c17ed4ff65988e4159733d01d43ce;hpb=a398348262109d4272d93b787014e9c901d99b67;p=babeltrace.git diff --git a/formats/ctf/metadata/ctf-lexer.l b/formats/ctf/metadata/ctf-lexer.l index ff4f8a51..905da991 100644 --- a/formats/ctf/metadata/ctf-lexer.l +++ b/formats/ctf/metadata/ctf-lexer.l @@ -15,15 +15,23 @@ * * 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 -#include +#include #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) @@ -56,11 +64,11 @@ ESCSEQ \\(\'|\"|\?|\\|a|b|f|n|r|t|v|{OCTALDIGIT}{1,3}|u{HEXDIGIT}{4}|U{HEXDIG "/*" BEGIN(comment_ml); [^*\n]* /* eat anything that's not a '*' */ "*"+[^*/\n]* /* eat up '*'s not followed by '/'s */ -\n ++yylineno; +\n "*"+"/" BEGIN(INITIAL); "//" BEGIN(comment_sl); -[^\n]*\n ++yylineno; BEGIN(INITIAL); +[^\n]*\n BEGIN(INITIAL); L\' BEGIN(char_const); return CHARACTER_CONSTANT_START; \' BEGIN(char_const); return CHARACTER_CONSTANT_START; @@ -93,10 +101,13 @@ L\" BEGIN(string_lit); return STRING_LITERAL_START; "." 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; @@ -109,6 +120,7 @@ stream setstring(yyextra, yylval, yytext); return STREAM; 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; @@ -121,6 +133,6 @@ _Imaginary setstring(yyextra, yylval, yytext); return _IMAGINARY; 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_debug("\n", yytext); setstring(yyextra, yylval, yytext); if (is_type(yyextra, yytext)) return ID_TYPE; else return IDENTIFIER; -[ \t\n]+ ; /* ignore */ +[ \t\n\r]+ ; /* ignore */ . return ERROR; %%