mirror of
https://github.com/nim-lang/Nim.git
synced 2026-07-19 23:41:29 +00:00
@@ -107,7 +107,7 @@ Unchecked pragma
|
||||
----------------
|
||||
The ``unchecked`` pragma can be used to mark a named array as ``unchecked``
|
||||
meaning its bounds are not checked. This is often useful when one wishes to
|
||||
implement his own flexibly sized arrays. Additionally an unchecked array is
|
||||
implement their own flexibly sized arrays. Additionally an unchecked array is
|
||||
translated into a C array of undetermined size:
|
||||
|
||||
.. code-block:: nim
|
||||
|
||||
10
doc/tut1.txt
10
doc/tut1.txt
@@ -333,8 +333,8 @@ The while statement is a simple looping construct:
|
||||
name = readLine(stdin)
|
||||
# no ``var``, because we do not declare a new variable here
|
||||
|
||||
The example uses a while loop to keep asking the user for his name, as long as
|
||||
he types in nothing (only presses RETURN).
|
||||
The example uses a while loop to keep asking the user for their name, as long
|
||||
as the user types in nothing (only presses RETURN).
|
||||
|
||||
|
||||
For statement
|
||||
@@ -545,9 +545,9 @@ procedures are defined with the ``proc`` keyword:
|
||||
echo("I think you know what the problem is just as well as I do.")
|
||||
|
||||
This example shows a procedure named ``yes`` that asks the user a ``question``
|
||||
and returns true if he answered "yes" (or something similar) and returns
|
||||
false if he answered "no" (or something similar). A ``return`` statement leaves
|
||||
the procedure (and therefore the while loop) immediately. The
|
||||
and returns true if they answered "yes" (or something similar) and returns
|
||||
false if they answered "no" (or something similar). A ``return`` statement
|
||||
leaves the procedure (and therefore the while loop) immediately. The
|
||||
``(question: string): bool`` syntax describes that the procedure expects a
|
||||
parameter named ``question`` of type ``string`` and returns a value of type
|
||||
``bool``. ``Bool`` is a built-in type: the only valid values for ``bool`` are
|
||||
|
||||
@@ -210,7 +210,7 @@ proc getMaxMem(a: var MemRegion): int =
|
||||
|
||||
proc llAlloc(a: var MemRegion, size: int): pointer =
|
||||
# *low-level* alloc for the memory managers data structures. Deallocation
|
||||
# is done at he end of the allocator's life time.
|
||||
# is done at the end of the allocator's life time.
|
||||
if a.llmem == nil or size > a.llmem.size:
|
||||
# the requested size is ``roundup(size+sizeof(LLChunk), PageSize)``, but
|
||||
# since we know ``size`` is a (small) constant, we know the requested size
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
# distribution, for details about the copyright.
|
||||
#
|
||||
|
||||
when declared(NimString):
|
||||
when declared(NimString):
|
||||
# we are in system module:
|
||||
{.pragma: codegenType, compilerproc.}
|
||||
else:
|
||||
{.pragma: codegenType, importc.}
|
||||
|
||||
type
|
||||
# This should be he same as ast.TTypeKind
|
||||
type
|
||||
# This should be the same as ast.TTypeKind
|
||||
# many enum fields are not used at runtime
|
||||
TNimKind = enum
|
||||
tyNone,
|
||||
@@ -73,7 +73,7 @@ type
|
||||
len: int
|
||||
sons: ptr array [0..0x7fff, ptr TNimNode]
|
||||
|
||||
TNimTypeFlag = enum
|
||||
TNimTypeFlag = enum
|
||||
ntfNoRefs = 0, # type contains no tyRef, tySequence, tyString
|
||||
ntfAcyclic = 1, # type cannot form a cycle
|
||||
ntfEnumHole = 2 # enum has holes and thus `$` for them needs the slow
|
||||
@@ -88,5 +88,5 @@ type
|
||||
marker: proc (p: pointer, op: int) {.nimcall, benign.} # marker proc for GC
|
||||
deepcopy: proc (p: pointer): pointer {.nimcall, benign.}
|
||||
PNimType = ptr TNimType
|
||||
|
||||
|
||||
# node.len may be the ``first`` element of a set
|
||||
|
||||
Reference in New Issue
Block a user