summaryrefslogtreecommitdiff
path: root/docs/tutorial/LangImpl4.html
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-10-23 06:27:55 +0000
committerChris Lattner <sabre@nondot.org>2007-10-23 06:27:55 +0000
commitc0b42e95587b06e7494ad62350c1b7ceae99dc69 (patch)
tree108181a48f7374eac68f5f7e359ecea95cf351e8 /docs/tutorial/LangImpl4.html
parent35abbf518ff83d9bfe882ec9c9bc8b990b07b9a3 (diff)
downloadllvm-c0b42e95587b06e7494ad62350c1b7ceae99dc69.tar.gz
llvm-c0b42e95587b06e7494ad62350c1b7ceae99dc69.tar.bz2
llvm-c0b42e95587b06e7494ad62350c1b7ceae99dc69.tar.xz
add a skeleton for part 4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43246 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/tutorial/LangImpl4.html')
-rw-r--r--docs/tutorial/LangImpl4.html78
1 files changed, 78 insertions, 0 deletions
diff --git a/docs/tutorial/LangImpl4.html b/docs/tutorial/LangImpl4.html
new file mode 100644
index 0000000000..358ec69ad1
--- /dev/null
+++ b/docs/tutorial/LangImpl4.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+<head>
+ <title>Kaleidoscope: Adding JIT and Optimizer Support</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="author" content="Chris Lattner">
+ <link rel="stylesheet" href="../llvm.css" type="text/css">
+</head>
+
+<body>
+
+<div class="doc_title">Kaleidoscope: Adding JIT and Optimizer Support</div>
+
+<div class="doc_author">
+ <p>Written by <a href="mailto:sabre@nondot.org">Chris Lattner</a></p>
+</div>
+
+<!-- *********************************************************************** -->
+<div class="doc_section"><a name="intro">Part 4 Introduction</a></div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+<p>Welcome to part 4 of the "<a href="index.html">Implementing a language with
+LLVM</a>" tutorial.</p>
+
+</div>
+
+<!-- *********************************************************************** -->
+<div class="doc_section"><a name="basics">Code Generation setup</a></div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+<p>
+In order to generate LLVM IR, we want some simple setup to get started. First,
+we define virtual codegen methods in each AST class:</p>
+
+<div class="doc_code">
+<pre>
+/// ExprAST - Base class for all expression nodes.
+class ExprAST {
+public:
+ virtual ~ExprAST() {}
+ virtual Value *Codegen() = 0;
+};
+
+/// NumberExprAST - Expression class for numeric literals like "1.0".
+class NumberExprAST : public ExprAST {
+ double Val;
+public:
+ explicit NumberExprAST(double val) : Val(val) {}
+ virtual Value *Codegen();
+};
+...
+</pre>
+</div>
+
+
+
+</div>
+
+<!-- *********************************************************************** -->
+<hr>
+<address>
+ <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
+ src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
+ <a href="http://validator.w3.org/check/referer"><img
+ src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
+
+ <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
+ <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
+ Last modified: $Date: 2007-10-17 11:05:13 -0700 (Wed, 17 Oct 2007) $
+</address>
+</body>
+</html>