diff options
Diffstat (limited to 'rule.h')
-rw-r--r-- | rule.h | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -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_ |