Thread: [Flex-help] Query about a given flex input file
flex is a tool for generating scanners
Brought to you by:
wlestes
From: Mahendra L. <lm...@ya...> - 2012-07-19 05:56:16
|
Hello, Here is my simplified flex file %% "keyword1" { return KEYWORD1; }; "keyword2" { return KEYWORD2; }; "unit1" { return UNIT1; }; "unit2" { return UNIT2; }; "activate" { return ACTIVATE; }; "deactivate" { return DEACTIVATE; }; "." { return DOT; }; [A-Za-z][A-Za-z0-9_-]*([.][A-Za-z][A-Za-z0-9_-]*)+ { return OBJECT_ID; }; %% I'm having a bison file also to generate the parser. If the input to the tokenizer is xyz.pqr : I expect it to return OBJECT_ID unit1xyz.activatepqr : should return OBJECT_ID unit1.activate : should return 3 tokens, namely, UNIT1, DOT, ACTIVATE keyword1.keyword2 : should return 3 tokens, namely, KEYWORD1, DOT, KEYWORD2 But I'm seeing that the last 2 inputs result in OBJECT_ID token. This happens since Flex generated tokenizers always return the longest token. How can I get the expected behaviour as described above ? Thank you, Mahendra |