aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2006-08-07 05:37:32 +0000
committerMike Buland <eichlan@xagasoft.com>2006-08-07 05:37:32 +0000
commit89b5cb358a13e7229487fe3c22785942d329b018 (patch)
tree743e0ec9898dd2329223c7d7972d14ddb110abb1
parent71c3c523aacb0f6986d50f4a7a2e5d604728a4c4 (diff)
downloadbuild-89b5cb358a13e7229487fe3c22785942d329b018.tar.gz
build-89b5cb358a13e7229487fe3c22785942d329b018.tar.bz2
build-89b5cb358a13e7229487fe3c22785942d329b018.tar.xz
build-89b5cb358a13e7229487fe3c22785942d329b018.zip
Updated the lexer to not include + or = in string literals outside of quotes.
Added the new make style viewer, the simplest, lamest viewer, but it looks just like the output of make. Very useful for debugging and seeing what's going on.
-rw-r--r--build.conf2
-rw-r--r--src/build.l4
-rw-r--r--src/main.cpp9
-rw-r--r--src/viewermake.cpp62
-rw-r--r--src/viewermake.h28
5 files changed, 102 insertions, 3 deletions
diff --git a/build.conf b/build.conf
index 7e54491..dc847c8 100644
--- a/build.conf
+++ b/build.conf
@@ -10,7 +10,7 @@ set CXXFLAGS += "-ggdb"
10set CXXFLAGS += "-Ilibbu++/src" 10set CXXFLAGS += "-Ilibbu++/src"
11set LDFLAGS += "-Llibbu++ -lbu++" 11set LDFLAGS += "-Llibbu++ -lbu++"
12 12
13build requires libbu++/libbu++.a 13build requires "libbu++/libbu++.a"
14 14
15/(.*)\.o$/ requires from command "g++ {CXXFLAGS} -M {re:1}.c*" 15/(.*)\.o$/ requires from command "g++ {CXXFLAGS} -M {re:1}.c*"
16 16
diff --git a/src/build.l b/src/build.l
index 723991b..2b834a2 100644
--- a/src/build.l
+++ b/src/build.l
@@ -77,12 +77,12 @@ std::string strbuf;
77 77
78"#".* /* single line comment */ 78"#".* /* single line comment */
79 79
80[^ \t\r\n\'\":=,/][^ \t\r\n\'\":=,]* { 80[^ \t\r\n\'\":+=,/][^ \t\r\n\'\":+=,]* {
81 yylval->strval = stringdup( yytext ); 81 yylval->strval = stringdup( yytext );
82 return STRING; 82 return STRING;
83} 83}
84 84
85[^ \t\r\n\'\":=,/][^ \t\r\n\'\"=,]+[^ \t\r\n\'\":=,] { 85[^ \t\r\n\'\":+=,/][^ \t\r\n\'\"+=,]+[^ \t\r\n\'\":+=,] {
86 yylval->strval = stringdup( yytext ); 86 yylval->strval = stringdup( yytext );
87 return STRING; 87 return STRING;
88} 88}
diff --git a/src/main.cpp b/src/main.cpp
index 3ea4411..c1df482 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,6 +1,7 @@
1#include "builder.h" 1#include "builder.h"
2#include "viewerplain.h" 2#include "viewerplain.h"
3#include "viewerpercent.h" 3#include "viewerpercent.h"
4#include "viewermake.h"
4#include "paramproc.h" 5#include "paramproc.h"
5#include "staticstring.h" 6#include "staticstring.h"
6 7
@@ -17,6 +18,8 @@ public:
17 "Set the input script, default: build.conf"); 18 "Set the input script, default: build.conf");
18 addParam('p', mkproc(Param::procViewPercent), 19 addParam('p', mkproc(Param::procViewPercent),
19 "Switch to percent view."); 20 "Switch to percent view.");
21 addParam('m', mkproc(Param::procViewMake),
22 "Switch to 'make' style view.");
20 addParam("cache", &sCache, 23 addParam("cache", &sCache,
21 "Set an alternative cache file." ); 24 "Set an alternative cache file." );
22 addParam('d', &bDebug, 25 addParam('d', &bDebug,
@@ -48,6 +51,12 @@ public:
48 pViewer = new ViewerPercent; 51 pViewer = new ViewerPercent;
49 } 52 }
50 53
54 int procViewMake( int argc, char *argv[] )
55 {
56 delete pViewer;
57 pViewer = new ViewerMake;
58 }
59
51 std::string sCache; 60 std::string sCache;
52 std::string sFile; 61 std::string sFile;
53 StaticString sAction; 62 StaticString sAction;
diff --git a/src/viewermake.cpp b/src/viewermake.cpp
new file mode 100644
index 0000000..7f63552
--- /dev/null
+++ b/src/viewermake.cpp
@@ -0,0 +1,62 @@
1#include <stdio.h>
2#include "viewermake.h"
3#include "perform.h"
4
5ViewerMake::ViewerMake()
6{
7}
8
9ViewerMake::~ViewerMake()
10{
11}
12
13void ViewerMake::beginTarget( const char *sName, const char *sType, const char *sOperation, int nPerforms )
14{
15 //sAction = sName;
16 //bPrinted = false;
17}
18
19void ViewerMake::printHead()
20{
21 /*
22 if( bPrinted == false )
23 {
24 printf("--- %s ---\n", sAction.getString() );
25 bPrinted = true;
26 }*/
27}
28
29void ViewerMake::endTarget()
30{
31 /*if( bPrinted == true )
32 {
33 printf("\n");
34 }
35 else
36 {
37 printf("Nothing to be done for %s.\n", sAction.getString() );
38 }*/
39}
40
41void ViewerMake::beginPerform( Perform *pPerf )
42{
43 //sTarget = pPerf->getTarget();
44}
45
46void ViewerMake::beginExtraRequiresCheck( const char *sCommand )
47{
48 //printHead();
49 //printf(" check: %s\n", sTarget.getString() );
50}
51
52void ViewerMake::beginExecute()
53{
54 //printHead();
55 //printf(" build: %s\n", sTarget.getString() );
56}
57
58void ViewerMake::executeCmd( const char *sCmd )
59{
60 printf("%s\n", sCmd );
61}
62
diff --git a/src/viewermake.h b/src/viewermake.h
new file mode 100644
index 0000000..767d0bd
--- /dev/null
+++ b/src/viewermake.h
@@ -0,0 +1,28 @@
1#ifndef VIEWER_MAKE_H
2#define VIEWER_MAKE_H
3
4#include <stdint.h>
5
6#include "viewer.h"
7#include "staticstring.h"
8
9class ViewerMake : public Viewer
10{
11public:
12 ViewerMake();
13 virtual ~ViewerMake();
14
15 virtual void beginTarget( const char *sName, const char *sType, const char *sOperation, int nPerforms );
16 virtual void endTarget();
17
18 virtual void beginPerform( Perform *pPerf );
19 virtual void beginExtraRequiresCheck( const char *sCommand );
20 void printHead();
21 virtual void beginExecute();
22 virtual void executeCmd( const char *sCmd );
23
24private:
25
26};
27
28#endif