*
* 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 "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)
"/*" BEGIN(comment_ml);
<comment_ml>[^*\n]* /* eat anything that's not a '*' */
<comment_ml>"*"+[^*/\n]* /* eat up '*'s not followed by '/'s */
-<comment_ml>\n ++yylineno;
+<comment_ml>\n
<comment_ml>"*"+"/" BEGIN(INITIAL);
"//" BEGIN(comment_sl);
-<comment_sl>[^\n]*\n ++yylineno; BEGIN(INITIAL);
+<comment_sl>[^\n]*\n BEGIN(INITIAL);
L\' BEGIN(char_const); return CHARACTER_CONSTANT_START;
\' BEGIN(char_const); return CHARACTER_CONSTANT_START;
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;
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("<IDENTIFIER %s>\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;
%%