Skip to content

Commit

Permalink
Fixed linking on PythonLangImpl1.rst
Browse files Browse the repository at this point in the history
  • Loading branch information
Maggie-M committed Aug 12, 2012
1 parent 1cbcd2f commit f01d92d
Showing 1 changed file with 13 additions and 11 deletions.
24 changes: 13 additions & 11 deletions docs/source/doc/kaleidoscope/PythonLangImpl1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,52 +26,52 @@ We've tried to put this tutorial together in a way that makes chapters
easy to skip over if you are already familiar with or are uninterested
in the various pieces. The structure of the tutorial is:

- **`Chapter 1 <#language>`_: Introduction to the Kaleidoscope
- :ref:`Chapter 1 <chapter1anchor>`: **Introduction to the Kaleidoscope
language, and the definition of its Lexer** -- This shows where we
are going and the basic functionality that we want it to do. In order
to make this tutorial maximally understandable and hackable, we
choose to implement everything in Python instead of using lexer and
parser generators. LLVM obviously works just fine with such tools,
feel free to use one if you prefer.

- **`Chapter 2 <PythonLangImpl2.html>`_: Implementing a Parser and
- `Chapter 2 <PythonLangImpl2.html>`_: **Implementing a Parser and
AST** -- With the lexer in place, we can talk about parsing
techniques and basic AST construction. This tutorial describes
recursive descent parsing and operator precedence parsing. Nothing in
Chapters 1 or 2 is LLVM-specific, the code doesn't even import the
LLVM modules at this point. :)

- **`Chapter 3 <PythonLangImpl3.html>`_: Code generation to LLVM IR**
- `Chapter 3 <PythonLangImpl3.html>`_: **Code generation to LLVM IR**
-- With the AST ready, we can show off how easy generation of LLVM IR
really is.

- **`Chapter 4 <PythonLangImpl4.html>`_: Adding JIT and Optimizer
- `Chapter 4 <PythonLangImpl4.html>`_: **Adding JIT and Optimizer
support** -- Because a lot of people are interested in using LLVM as
a JIT, we'll dive right into it and show you the 3 lines it takes to
add JIT support. LLVM is also useful in many other ways, but this is
one simple and "sexy" way to shows off its power. :)

- **`Chapter 5 <PythonLangImpl5.html>`_: Extending the Language:
- `Chapter 5 <PythonLangImpl5.html>`_: **Extending the Language:
Control Flow** -- With the language up and running, we show how to
extend it with control flow operations (if/then/else and a 'for'
loop). This gives us a chance to talk about simple SSA construction
and control flow.

- **`Chapter 6 <PythonLangImpl6.html>`_: Extending the Language:
- `Chapter 6 <PythonLangImpl6.html>`_: **Extending the Language:
User-defined Operators** -- This is a silly but fun chapter that
talks about extending the language to let the user program define
their own arbitrary unary and binary operators (with assignable
precedence!). This lets us build a significant piece of the
"language" as library routines.

- **`Chapter 7 <PythonLangImpl7.html>`_: Extending the Language:
- `Chapter 7 <PythonLangImpl7.html>`_: **Extending the Language:
Mutable Variables** -- This chapter talks about adding user-defined
local variables along with an assignment operator. The interesting
part about this is how easy and trivial it is to construct SSA form
in LLVM: no, LLVM does *not* require your front-end to construct SSA
form!

- **`Chapter 8 <PythonLangImpl8.html>`_: Conclusion and other useful
- `Chapter 8 <PythonLangImpl8.html>`_: **Conclusion and other useful
LLVM tidbits** -- This chapter wraps up the series by talking about
potential ways to extend the language, but also includes a bunch of
pointers to info about "special topics" like adding garbage
Expand All @@ -94,8 +94,10 @@ play with languages!

--------------

The Basic Language # {#language}
================================
.. _chapter1anchor:

The Basic Language
====================

This tutorial will be illustrated with a toy language that we'll call
"`Kaleidoscope <http://en.wikipedia.org/wiki/Kaleidoscope>`_\ " (derived
Expand Down Expand Up @@ -152,7 +154,7 @@ Lets dive into the implementation of this language!

--------------

The Lexer # {#lexer}
The Lexer
====================

When it comes to implementing a language, the first thing needed is the
Expand Down

0 comments on commit f01d92d

Please sign in to comment.