Re: Question: Can the lexer access the token value?

Seth <[email protected]> Mon, 14 Jun 2021 21:41:35 +0200
Newsgroups gmane.comp.parsers.spirit.general
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============3922784831741248047==
Content-Type: multipart/alternative;
 boundary="------------2EF49C2590A42D896AE41ADD"
Content-Language: en-GB

This is a multi-part message in MIME format.
--------------2EF49C2590A42D896AE41ADD
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Op 14-06-2021 om 00:10 schreef brian moroz:
> Hi,
>
> Question: Can the lexer access/retrieve the actual string token during
> scanning. For example, Flex can do this using the yytext() function.
> The examples I've seen on the web including the Boost site do not
> illustrate how this can be done using just Spirit lex.

Yes, you need to pass lexer `std::string` in the type list for the token
type e.g.

|typedef lex::lexertl::token<char const*, boost::mpl::vector<lex::omit,
std::string>, boost::mpl::true_> token_type; |

I'm pretty sure I have several answers showing such lexers on
Stackoverflow: https://stackoverflow.com/search?q=lex+token+omit (those
keywords invariably appear in this kind of declaration).

I hope you will find things here that either answer your question or
help you make it more specific,

Regards,

Seth

A propos of nothing: I could have a look at the actual work. I usually
recommend going without Lex

>
> Thanks,
> Brian
>
> -- 
> *Brian E. Moroz*
> /[email protected] <mailto:[email protected]>/
> /[email protected] <mailto:[email protected]>/
>
>
> _______________________________________________
> Spirit-general mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/spirit-general



--------------2EF49C2590A42D896AE41ADD
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

PGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CiAgPC9oZWFkPgogIDxib2R5Pgog
ICAgPGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5PcCAxNC0wNi0yMDIxIG9tIDAwOjEw
IHNjaHJlZWYgYnJpYW4KICAgICAgbW9yb3o6PGJyPgogICAgPC9kaXY+CiAgICA8YmxvY2tx
dW90ZSB0eXBlPSJjaXRlIgpjaXRlPSJtaWQ6Q0FLPXFtazczVi1yY2YwQm9ISGstR3k3V3ZI
TjF6ZzJDMENnSjVNWG53MHhGa2pMPVBBQG1haWwuZ21haWwuY29tIj4KICAgICAgPGRpdiBk
aXI9Imx0ciI+CiAgICAgICAgPGRpdj5IaSw8L2Rpdj4KICAgICAgICA8ZGl2Pjxicj4KICAg
ICAgICA8L2Rpdj4KICAgICAgICA8ZGl2PlF1ZXN0aW9uOiBDYW4gdGhlIGxleGVyIGFjY2Vz
cy9yZXRyaWV2ZSB0aGUgYWN0dWFsIHN0cmluZwogICAgICAgICAgdG9rZW4gZHVyaW5nIHNj
YW5uaW5nLiBGb3IgZXhhbXBsZSwgRmxleCBjYW4gZG8gdGhpcyB1c2luZyB0aGUKICAgICAg
ICAgIHl5dGV4dCgpIGZ1bmN0aW9uLiBUaGUgZXhhbXBsZXMgSSd2ZSBzZWVuIG9uIHRoZSB3
ZWIgaW5jbHVkaW5nCiAgICAgICAgICB0aGUgQm9vc3Qgc2l0ZSBkbyBub3QgaWxsdXN0cmF0
ZSBob3cgdGhpcyBjYW4gYmUgZG9uZSB1c2luZwogICAgICAgICAganVzdCBTcGlyaXQgbGV4
LjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvYmxvY2txdW90ZT4KICAgIDxwPlllcywgeW91
IG5lZWQgdG8gcGFzcyBsZXhlciBgc3RkOjpzdHJpbmdgIGluIHRoZSB0eXBlIGxpc3QgZm9y
CiAgICAgIHRoZSB0b2tlbiB0eXBlIGUuZy48L3A+CiAgICA8cHJlIGNsYXNzPSJsYW5nLWNw
cCBzLWNvZGUtYmxvY2sgaGxqcyIgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJp
Z2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tcy1wcm9zZS1zcGFjaW5nKSAr
IDAuNGVtKTsgbWFyZ2luLWxlZnQ6IDBweDsgcGFkZGluZzogMTJweDsgYm9yZGVyOiAwcHg7
IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBm
b250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXZhcmlhbnQtbnVtZXJpYzogaW5oZXJp
dDsgZm9udC12YXJpYW50LWVhc3QtYXNpYW46IGluaGVyaXQ7IGZvbnQtd2VpZ2h0OiA0MDA7
IGZvbnQtc3RyZXRjaDogaW5oZXJpdDsgbGluZS1oZWlnaHQ6IDEuMzA3Njk7IGZvbnQtZmFt
aWx5OiB2YXIoLS1mZi1tb25vKTsgZm9udC1zaXplOiAxM3B4OyB2ZXJ0aWNhbC1hbGlnbjog
YmFzZWxpbmU7IGJveC1zaXppbmc6IGluaGVyaXQ7IHdpZHRoOiBhdXRvOyBtYXgtaGVpZ2h0
OiA2MDBweDsgb3ZlcmZsb3c6IGF1dG87IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmty
ZWFkZXItYmctLWhpZ2hsaWdodC1iZyk7IGJvcmRlci1yYWRpdXM6IDVweDsgY29sb3I6IHZh
cigtLWRhcmtyZWFkZXItdGV4dC0taGlnaGxpZ2h0LWNvbG9yKTsgb3ZlcmZsb3ctd3JhcDog
bm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWdu
OiBsZWZ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2lkb3dz
OiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4
OyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24t
c3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsiPjxjb2Rl
IHN0eWxlPSJtYXJnaW46IDBweDsgcGFkZGluZzogMHB4OyBib3JkZXI6IDBweDsgZm9udC1z
dHlsZTogaW5oZXJpdDsgZm9udC12YXJpYW50OiBpbmhlcml0OyBmb250LXdlaWdodDogaW5o
ZXJpdDsgZm9udC1zdHJldGNoOiBpbmhlcml0OyBsaW5lLWhlaWdodDogaW5oZXJpdDsgZm9u
dC1mYW1pbHk6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMTNweDsgdmVydGljYWwtYWxpZ246IGJh
c2VsaW5lOyBib3gtc2l6aW5nOiBpbmhlcml0OyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3Bh
cmVudDsgd2hpdGUtc3BhY2U6IGluaGVyaXQ7Ij4gICAgPHNwYW4gY2xhc3M9ImhsanMta2V5
d29yZCIgc3R5bGU9Im1hcmdpbjogMHB4OyBwYWRkaW5nOiAwcHg7IGJvcmRlcjogMHB4OyBm
b250LXN0eWxlOiBpbmhlcml0OyBmb250LXZhcmlhbnQ6IGluaGVyaXQ7IGZvbnQtd2VpZ2h0
OiBpbmhlcml0OyBmb250LXN0cmV0Y2g6IGluaGVyaXQ7IGxpbmUtaGVpZ2h0OiBpbmhlcml0
OyBmb250LWZhbWlseTogaW5oZXJpdDsgZm9udC1zaXplOiAxM3B4OyB2ZXJ0aWNhbC1hbGln
bjogYmFzZWxpbmU7IGJveC1zaXppbmc6IGluaGVyaXQ7IGNvbG9yOiB2YXIoLS1kYXJrcmVh
ZGVyLXRleHQtLWhpZ2hsaWdodC1rZXl3b3JkKTsiPnR5cGVkZWY8L3NwYW4+IGxleDo6bGV4
ZXJ0bDo6dG9rZW4mbHQ7PHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCIgc3R5bGU9Im1hcmdp
bjogMHB4OyBwYWRkaW5nOiAwcHg7IGJvcmRlcjogMHB4OyBmb250LXN0eWxlOiBpbmhlcml0
OyBmb250LXZhcmlhbnQ6IGluaGVyaXQ7IGZvbnQtd2VpZ2h0OiBpbmhlcml0OyBmb250LXN0
cmV0Y2g6IGluaGVyaXQ7IGxpbmUtaGVpZ2h0OiBpbmhlcml0OyBmb250LWZhbWlseTogaW5o
ZXJpdDsgZm9udC1zaXplOiAxM3B4OyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IGJveC1z
aXppbmc6IGluaGVyaXQ7IGNvbG9yOiB2YXIoLS1kYXJrcmVhZGVyLXRleHQtLWhpZ2hsaWdo
dC1rZXl3b3JkKTsiPmNoYXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiIHN0
eWxlPSJtYXJnaW46IDBweDsgcGFkZGluZzogMHB4OyBib3JkZXI6IDBweDsgZm9udC1zdHls
ZTogaW5oZXJpdDsgZm9udC12YXJpYW50OiBpbmhlcml0OyBmb250LXdlaWdodDogaW5oZXJp
dDsgZm9udC1zdHJldGNoOiBpbmhlcml0OyBsaW5lLWhlaWdodDogaW5oZXJpdDsgZm9udC1m
YW1pbHk6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMTNweDsgdmVydGljYWwtYWxpZ246IGJhc2Vs
aW5lOyBib3gtc2l6aW5nOiBpbmhlcml0OyBjb2xvcjogdmFyKC0tZGFya3JlYWRlci10ZXh0
LS1oaWdobGlnaHQta2V5d29yZCk7Ij5jb25zdDwvc3Bhbj4qLCBib29zdDo6bXBsOjp2ZWN0
b3ImbHQ7bGV4OjpvbWl0LCBzdGQ6OnN0cmluZyZndDssIGJvb3N0OjptcGw6OnRydWVfJmd0
OyB0b2tlbl90eXBlOwo8L2NvZGU+PC9wcmU+CiAgICA8cD5JJ20gcHJldHR5IHN1cmUgSSBo
YXZlIHNldmVyYWwgYW5zd2VycyBzaG93aW5nIHN1Y2ggbGV4ZXJzIG9uCiAgICAgIFN0YWNr
b3ZlcmZsb3c6IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0dHBz
Oi8vc3RhY2tvdmVyZmxvdy5jb20vc2VhcmNoP3E9bGV4K3Rva2VuK29taXQiPmh0dHBzOi8v
c3RhY2tvdmVyZmxvdy5jb20vc2VhcmNoP3E9bGV4K3Rva2VuK29taXQ8L2E+CiAgICAgICh0
aG9zZSBrZXl3b3JkcyBpbnZhcmlhYmx5IGFwcGVhciBpbiB0aGlzIGtpbmQgb2YgZGVjbGFy
YXRpb24pLjwvcD4KICAgIDxwPkkgaG9wZSB5b3Ugd2lsbCBmaW5kIHRoaW5ncyBoZXJlIHRo
YXQgZWl0aGVyIGFuc3dlciB5b3VyIHF1ZXN0aW9uCiAgICAgIG9yIGhlbHAgeW91IG1ha2Ug
aXQgbW9yZSBzcGVjaWZpYyw8L3A+CiAgICA8cD5SZWdhcmRzLDwvcD4KICAgIDxwPlNldGg8
L3A+CiAgICA8cD5BIHByb3BvcyBvZiBub3RoaW5nOiBJIGNvdWxkIGhhdmUgYSBsb29rIGF0
IHRoZSBhY3R1YWwgd29yay4gSQogICAgICB1c3VhbGx5IHJlY29tbWVuZCBnb2luZyB3aXRo
b3V0IExleDxicj4KICAgIDwvcD4KICAgIDxibG9ja3F1b3RlIHR5cGU9ImNpdGUiCmNpdGU9
Im1pZDpDQUs9cW1rNzNWLXJjZjBCb0hIay1HeTdXdkhOMXpnMkMwQ2dKNU1YbncweEZrakw9
UEFAbWFpbC5nbWFpbC5jb20iPgogICAgICA8ZGl2IGRpcj0ibHRyIj4KICAgICAgICA8ZGl2
Pjxicj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2PlRoYW5rcyw8L2Rpdj4KICAgICAg
ICA8ZGl2PkJyaWFuPGJyPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXY+PGJyPgogICAg
ICAgICAgLS0gPGJyPgogICAgICAgICAgPGRpdiBkaXI9Imx0ciIgY2xhc3M9ImdtYWlsX3Np
Z25hdHVyZSIKICAgICAgICAgICAgZGF0YS1zbWFydG1haWw9ImdtYWlsX3NpZ25hdHVyZSI+
CiAgICAgICAgICAgIDxkaXYgZGlyPSJsdHIiPjxiPkJyaWFuIEUuIE1vcm96PC9iPgogICAg
ICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8ZGl2PjxpPjxhIGhyZWY9Im1haWx0
bzpicmltb3JvekBnbWFpbC5jb20iCiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9Il9i
bGFuayIgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIj5icmltb3JvekBnbWFpbC5jb208L2E+PC9p
PjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj48aT48YSBocmVmPSJtYWlsdG86Ym1vcm96
QGNzM2NvbXB1dGluZy5jb20iCiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFu
ayIgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIj5ibW9yb3pAY3MzY29tcHV0aW5nLmNvbTwvYT48
L2k+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YnI+CiAg
ICAgIDxmaWVsZHNldCBjbGFzcz0ibWltZUF0dGFjaG1lbnRIZWFkZXIiPjwvZmllbGRzZXQ+
CiAgICAgIDxicj4KICAgICAgPGZpZWxkc2V0IGNsYXNzPSJtaW1lQXR0YWNobWVudEhlYWRl
ciI+PC9maWVsZHNldD4KICAgICAgPHByZSBjbGFzcz0ibW96LXF1b3RlLXByZSIgd3JhcD0i
Ij5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpTcGly
aXQtZ2VuZXJhbCBtYWlsaW5nIGxpc3QKPGEgY2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZp
YXRlZCIgaHJlZj0ibWFpbHRvOlNwaXJpdC1nZW5lcmFsQGxpc3RzLnNvdXJjZWZvcmdlLm5l
dCI+U3Bpcml0LWdlbmVyYWxAbGlzdHMuc291cmNlZm9yZ2UubmV0PC9hPgo8YSBjbGFzcz0i
bW96LXR4dC1saW5rLWZyZWV0ZXh0IiBocmVmPSJodHRwczovL2xpc3RzLnNvdXJjZWZvcmdl
Lm5ldC9saXN0cy9saXN0aW5mby9zcGlyaXQtZ2VuZXJhbCI+aHR0cHM6Ly9saXN0cy5zb3Vy
Y2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vc3Bpcml0LWdlbmVyYWw8L2E+CjwvcHJlPgog
ICAgPC9ibG9ja3F1b3RlPgogICAgPHA+PGJyPgogICAgPC9wPgogIDwvYm9keT4KPC9odG1s
Pgo=
--------------2EF49C2590A42D896AE41ADD--


--===============3922784831741248047==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============3922784831741248047==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Spirit-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spirit-general

--===============3922784831741248047==--