diff options
author | Dominik Picheta <dominikpicheta@googlemail.com> | 2015-06-18 21:12:13 +0100 |
---|---|---|
committer | Dominik Picheta <dominikpicheta@googlemail.com> | 2015-06-18 21:12:13 +0100 |
commit | 30451746ca7534b0334c5d27f589db910bba8557 (patch) | |
tree | df2ecbb5870ef8b1dc8666c0d2e92b3b2afe490d | |
parent | 29b09a3c7d825cda6dad7c5d4030f752de266190 (diff) | |
parent | 20cc7c17b06b46514df3af13944e41f8c8ecb89b (diff) | |
download | Nim-30451746ca7534b0334c5d27f589db910bba8557.tar.gz |
Merge pull request #2955 from apense/patch-6
Minor fixes to astspec
-rw-r--r-- | doc/astspec.txt | 75 |
1 files changed, 38 insertions, 37 deletions
diff --git a/doc/astspec.txt b/doc/astspec.txt index 797413bd0..d3ca7755e 100644 --- a/doc/astspec.txt +++ b/doc/astspec.txt @@ -1,5 +1,6 @@ The AST in Nim -================= +============== + This section describes how the AST is modelled with Nim's type system. The AST consists of nodes (``NimNode``) with a variable number of children. Each node has a field named ``kind`` which describes what the node @@ -24,9 +25,9 @@ contains: of nnkNone, nnkEmpty, nnkNilLit: discard ## node contains no additional fields of nnkCharLit..nnkUInt64Lit: - intVal: biggestInt ## the int literal + intVal: BiggestInt ## the int literal of nnkFloatLit..nnkFloat64Lit: - floatVal: biggestFloat ## the float literal + floatVal: BiggestFloat ## the float literal of nnkStrLit..nnkTripleStrLit: strVal: string ## the string literal of nnkIdent: @@ -360,7 +361,7 @@ AST: .. code-block:: nim nnkCurly(nnkIntLit(1), nnkIntLit(2), nnkIntLit(3)) -When used as a table constructor, the syntax (and result) is different. +When used as a table constructor, the syntax is different. Concrete syntax: @@ -411,7 +412,7 @@ AST: If expression ------------- -The representation of the if expression is subtle, but easy to traverse. +The representation of the ``if`` expression is subtle, but easy to traverse. Concrete syntax: @@ -472,7 +473,7 @@ AST: ) ) -As many ``nnkIdent``s appear as there are pragmas between ``{..}``. Note that +As many ``nnkIdent`` appear as there are pragmas between ``{..}``. Note that the declaration of new pragmas is essentially the same: Concrete syntax: @@ -824,7 +825,7 @@ AST: .. code-block:: nim nnkExportStmt(nnkIdent(!"unsigned")) -Similar to the ``import`` statement, the AST is different for +Similar to the ``import`` statement, the AST is different for ``export ... except``. Concrete syntax: @@ -1035,42 +1036,42 @@ AST: nnkEmpty(), nnkRecList( # list of object parameters nnkIdentDefs( - nnkIdent(!"name"), - nnkIdent(!"string"), - nnkEmpty() + nnkIdent(!"name"), + nnkIdent(!"string"), + nnkEmpty() ), nnkRecCase( # case statement within object (not nnkCaseStmt) nnkIdentDefs( - nnkIdent(!"isFat"), - nnkIdent(!"bool"), - nnkEmpty() + nnkIdent(!"isFat"), + nnkIdent(!"bool"), + nnkEmpty() ), nnkOfBranch( - nnkIdent(!"true"), - nnkRecList( # again, a list of object parameters - nnkIdentDefs( - nnkIdent(!"m"), - nnkBracketExpr( - nnkIdent(!"array"), - nnkIntLit(100000), - nnkIdent(!"T") - ), - nnkEmpty() - ) + nnkIdent(!"true"), + nnkRecList( # again, a list of object parameters + nnkIdentDefs( + nnkIdent(!"m"), + nnkBracketExpr( + nnkIdent(!"array"), + nnkIntLit(100000), + nnkIdent(!"T") + ), + nnkEmpty() + ) ), nnkOfBranch( - nnkIdent(!"false"), - nnkRecList( - nnkIdentDefs( - nnkIdent(!"m"), - nnkBracketExpr( - nnkIdent(!"array"), - nnkIntLit(10), - nnkIdent(!"T") - ), - nnkEmpty() - ) - ) + nnkIdent(!"false"), + nnkRecList( + nnkIdentDefs( + nnkIdent(!"m"), + nnkBracketExpr( + nnkIdent(!"array"), + nnkIntLit(10), + nnkIdent(!"T") + ), + nnkEmpty() + ) + ) ) ) ) @@ -1135,7 +1136,7 @@ AST: # ... In general, declaring types mirrors this syntax (i.e., ``nnkStaticTy`` for -``static``, etc.). Examples follow (exceptions marked by ``*``: +``static``, etc.). Examples follow (exceptions marked by ``*``): ------------- --------------------------------------------- Nim type Corresponding AST |