aboutsummaryrefslogtreecommitdiffstats
path: root/rule.h
diff options
context:
space:
mode:
Diffstat (limited to 'rule.h')
-rw-r--r--rule.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/rule.h b/rule.h
index 071ad48..6434281 100644
--- a/rule.h
+++ b/rule.h
@@ -3,25 +3,26 @@
#include <vector>
+#include "ast.h"
#include "loc.h"
#include "log.h"
#include "string_piece.h"
using namespace std;
+class Evaluator;
class Value;
class Rule {
public:
Rule();
- void Parse(StringPiece line);
string DebugString() const;
vector<StringPiece> outputs;
vector<StringPiece> inputs;
vector<StringPiece> order_only_inputs;
- vector<string> output_patterns;
+ vector<StringPiece> output_patterns;
bool is_double_colon;
bool is_suffix_rule;
vector<Value*> cmds;
@@ -34,4 +35,14 @@ class Rule {
}
};
+struct RuleVar {
+ vector<StringPiece> outputs;
+ StringPiece lhs;
+ StringPiece rhs;
+ AssignOp op;
+};
+
+// If |rule| is not NULL, rule_var is filled.
+void ParseRule(Loc& loc, StringPiece line, Rule** rule, RuleVar* rule_var);
+
#endif // RULE_H_