145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org#ifndef re2c_token_h 245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org#define re2c_token_h 345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org#include "substr.h" 545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgtypedef struct Token { 745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org Str text; 845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org unsigned int line; 945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org} Token; 1045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 1145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgstatic void Token_init(Token *, SubStr, unsigned int); 1245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgstatic Token *Token_new(SubStr, unsigned int); 1345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 1445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgstatic void 1545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgToken_init(Token *r, SubStr t, unsigned int l) 1645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org{ 1745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org Str_copy(&r->text, &t); 1845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org r->line = l; 1945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org} 2045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 2145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgstatic Token * 2245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgToken_new(SubStr t, unsigned int l) 2345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org{ 2445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org Token *r = malloc(sizeof(Token)); 2545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org Str_init(&r->text, &t); 2645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org r->line = l; 2745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org return r; 2845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org} 2945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 3045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org#endif 31