mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Document Whiskers.
This commit is contained in:
parent
cb7021881a
commit
1d4f40e3a2
@ -13,6 +13,8 @@ TODO: Write about how scoping rules of inline assembly are a bit different
|
||||
and the complications that arise when for example using internal functions
|
||||
of libraries. Furthermore, write about the symbols defined by the compiler.
|
||||
|
||||
.. _inline-assembly:
|
||||
|
||||
Inline Assembly
|
||||
===============
|
||||
|
||||
|
@ -74,3 +74,22 @@ To run a subset of tests, filters can be used:
|
||||
``soltest -t TestSuite/TestName -- --ipcpath /tmp/testeth/geth.ipc``, where ``TestName`` can be a wildcard ``*``.
|
||||
|
||||
Alternatively, there is a testing script at ``scripts/test.sh`` which executes all tests.
|
||||
|
||||
Whiskers
|
||||
========
|
||||
|
||||
*Whiskers* is a templating system similar to `Moustache <https://mustache.github.io>`_. It is used by the
|
||||
compiler in various places to aid readability, and thus maintainability and verifiability, of the code.
|
||||
|
||||
The syntax comes with a substantial difference to Moustache: the template markers ``{{`` and ``}}`` are
|
||||
replaced by ``<`` and ``>`` in order to aid parsing and avoid conflicts with :ref:`inline-assembly`
|
||||
(The symbols ``<`` and ``>`` are invalid in inline assembly, while ``{`` and ``}`` are used to delimit blocks).
|
||||
Another limitation is that lists are only resolved one depth and they will not recurse. This may change in the future.
|
||||
|
||||
A rough specification is the following:
|
||||
|
||||
Any occurrence of ``<name>`` is replaced by the string-value of the supplied variable ``name`` without any
|
||||
escaping and without iterated replacements. An area can be delimited by ``<#name>...</name>``. It is replaced
|
||||
by as many concatenations of its contents as there were sets of variables supplied to the template system,
|
||||
each time replacing any ``<inner>`` items by their respective value. Top-level variales can also be used
|
||||
inside such areas.
|
Loading…
Reference in New Issue
Block a user