[lex] header file

View: New views
1 Messages — Rating Filter:   Alert me  

[lex] header file

by Gaydov Victor-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Patch to generate header file (important in C++ scanners) like this:

 cpp Lexer.cpp  : Parser.ll ;
 hpp Lexer.hpp  : Parser.ll ;


---lex.jam.orig 2009-10-31 10:32:53.000000000 +0300
+++ flex.jam 2009-10-31 10:35:01.000000000 +0300
@@ -6,28 +6,38 @@ import type ;
 import generators ;
 import feature ;
 import property ;
+import utility : ungrist ;
 
 
 feature.feature flex.prefix : : free ;
 type.register LEX : l ;
 type.register LEX++ : ll ;
-generators.register-standard lex.lex : LEX : C ;
-generators.register-standard lex.lex : LEX++ : CPP ;
+generators.register-standard lex.lex : LEX : C H ;
+generators.register-standard lex.lex : LEX++ : CPP HPP ;
 
 rule init ( )
 {
 }
 
-rule lex ( target : source : properties * )
+rule lex ( target + : source : properties * )
 {  
     local r = [ property.select flex.prefix : $(properties) ] ;
     if $(r)
     {
         PREFIX on $(<) = $(r:G=) ;
     }
+
+    for local file in $(target)
+    {
+        if $(file:S) = .hpp || $(file:S) = .h
+        {
+            local dir = [ MATCH p(.*) : [ ungrist $(file:G) ] ] ;
+            HEADER on $(<) = $(dir)/$(file:G=) ;
+        }
+    }
 }
 
 actions lex
 {
-    flex -P$(PREFIX) -o$(<) $(>)    
+    flex -P$(PREFIX) --header-file="$(HEADER)" -o"$(<[0])" "$(>)"
 }

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build