From 86d3ca5317ac777b6c54c633e568926be3dcee47 Mon Sep 17 00:00:00 2001
From: Argyrios Kyrtzidis
Date: Mon, 13 Sep 2010 17:48:02 +0000
Subject: [PATCH] Update 'docs/PCHInternals.html' about how subexpressions are
stored.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113760 91177308-0d34-0410-b5e6-96231b3b80d8
---
docs/PCHInternals.html | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/PCHInternals.html b/docs/PCHInternals.html
index 109d5ed025..d46ae5ceec 100644
--- a/docs/PCHInternals.html
+++ b/docs/PCHInternals.html
@@ -391,23 +391,23 @@ precompiled header, which contains the serialized representation of
that statement or expression. Each substatement or subexpression
within an expression is stored as a separate record (which keeps most
records to a fixed size). Within the precompiled header, the
-subexpressions of an expression are stored prior to the expression
+subexpressions of an expression are stored, in reverse order, prior to the expression
that owns those expression, using a form of Reverse
Polish Notation. For example, an expression 3 - 4 + 5
would be represented as follows:
- IntegerLiteral(3) |
+ IntegerLiteral(5) |
IntegerLiteral(4) |
+ IntegerLiteral(3) |
BinaryOperator(-) |
- IntegerLiteral(5) |
BinaryOperator(+) |
STOP |
When reading this representation, Clang evaluates each expression
-record it encounters, builds the appropriate abstract synax tree node,
+record it encounters, builds the appropriate abstract syntax tree node,
and then pushes that expression on to a stack. When a record contains N
subexpressions--BinaryOperator
has two of them--those
expressions are popped from the top of the stack. The special STOP
--
2.40.0