diff options
author | Chris Lattner <sabre@nondot.org> | 2007-11-05 19:25:14 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-11-05 19:25:14 +0000 |
commit | cac2135bc8a732c495b52aee85800baca2e23c22 (patch) | |
tree | cd436dd3c09ae4cda45ae14d28eb1153c38c12c2 /docs/tutorial | |
parent | cf9893d28cea3b3d541b497ee2a45ee6cf177407 (diff) |
mention possibility of using a visitor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43726 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/tutorial')
-rw-r--r-- | docs/tutorial/LangImpl3.html | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/docs/tutorial/LangImpl3.html b/docs/tutorial/LangImpl3.html index 3733a66bfc..3e629287cc 100644 --- a/docs/tutorial/LangImpl3.html +++ b/docs/tutorial/LangImpl3.html @@ -62,7 +62,7 @@ we define virtual codegen methods in each AST class:</p> class ExprAST { public: virtual ~ExprAST() {} - virtual Value *Codegen() = 0; + <b>virtual Value *Codegen() = 0;</b> }; /// NumberExprAST - Expression class for numeric literals like "1.0". @@ -70,7 +70,7 @@ class NumberExprAST : public ExprAST { double Val; public: explicit NumberExprAST(double val) : Val(val) {} - virtual Value *Codegen(); + <b>virtual Value *Codegen();</b> }; ... </pre> @@ -88,6 +88,11 @@ more information, please read up on <a href="http://en.wikipedia.org/wiki/Static_single_assignment_form">Static Single Assignment</a> - the concepts are really quite natural once you grok them.</p> +<p>Note that instead of adding virtual methods to the ExprAST class hierarchy, +it could also make sense to use a visitor pattern or some other way to model +this. Again, this tutorial won't dwell on good software engineering practices: +for our purposes, adding virtual methods is simplest.</p> + <p>The second thing we want is an "Error" method like we used for parser, which will be used to report errors found during code generation (for example, use of an |