This repository has been archived on 2024-06-20. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
pygments/tests/examplefiles/silver/test.sil.output
Oleh Prypin 6f43092173
Also add auto-updatable output-based tests to examplefiles (#1689)
Co-authored-by: Georg Brandl <georg@python.org>
2021-01-20 10:48:45 +01:00

2397 lines
48 KiB
Text
Generated

'domain' Keyword
' ' Text
'Option__Node' Name
' ' Text
'{' Punctuation
'\n' Text
' ' Text
'unique' Keyword
' ' Text
'function' Keyword
' ' Text
'Option__Node__Some' Name
'(' Punctuation
')' Punctuation
':' Operator
' ' Text
'Option__Node' Name
'\n' Text
' ' Text
'unique' Keyword
' ' Text
'function' Keyword
' ' Text
'Option__Node__None' Name
'(' Punctuation
')' Punctuation
':' Operator
' ' Text
'Option__Node' Name
'\n' Text
'\n' Text
' ' Text
'function' Keyword
' ' Text
'variantOfOptionNode' Name
'(' Punctuation
'self' Name
':' Operator
' ' Text
'Ref' Keyword.Type
')' Punctuation
':' Operator
' ' Text
'Option__Node' Name
'\n' Text
'\n' Text
' ' Text
'function' Keyword
' ' Text
'isOptionNode' Name
'(' Punctuation
'self' Name
':' Operator
' ' Text
'Ref' Keyword.Type
')' Punctuation
':' Operator
' ' Text
'Bool' Keyword.Type
'\n' Text
'\n' Text
' ' Text
'axiom' Keyword
' ' Text
'ax_variantOfOptionNodeChoices' Name
' ' Text
'{' Punctuation
'\n' Text
' ' Text
'forall' Keyword
' ' Text
'x' Name
':' Operator
' ' Text
'Ref' Keyword.Type
' ' Text
':' Operator
':' Operator
' ' Text
'{ variantOfOptionNode(x) }' Generic.Emph
'\n' Text
' ' Text
'(' Punctuation
'variantOfOptionNode' Name
'(' Punctuation
'x' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__Some' Name
'(' Punctuation
')' Punctuation
' ' Text
'|' Operator
'|' Operator
' ' Text
'variantOfOptionNode' Name
'(' Punctuation
'x' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__None' Name
'(' Punctuation
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'}' Punctuation
'\n' Text
'\n' Text
' ' Text
'axiom' Keyword
' ' Text
'ax_isCounterState' Name
' ' Text
'{' Punctuation
'\n' Text
' ' Text
'forall' Keyword
' ' Text
'x' Name
':' Operator
' ' Text
'Ref' Keyword.Type
' ' Text
':' Operator
':' Operator
' ' Text
'{ variantOfOptionNode(x) }' Generic.Emph
'\n' Text
' ' Text
'isOptionNode' Name
'(' Punctuation
'x' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'(' Punctuation
'variantOfOptionNode' Name
'(' Punctuation
'x' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__Some' Name
'(' Punctuation
')' Punctuation
' ' Text
'|' Operator
'|' Operator
'\n' Text
' ' Text
'variantOfOptionNode' Name
'(' Punctuation
'x' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__None' Name
'(' Punctuation
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'}' Punctuation
'\n' Text
'}' Punctuation
'\n' Text
'\n' Text
'predicate' Keyword
' ' Text
'validOption' Name
'(' Punctuation
'this' Name
':' Operator
' ' Text
'Ref' Keyword.Type
')' Punctuation
' ' Text
'{' Punctuation
'\n' Text
' ' Text
'isOptionNode' Name
'(' Punctuation
'this' Name
')' Punctuation
' ' Text
'&' Operator
'&' Operator
'\n' Text
' ' Text
'variantOfOptionNode' Name
'(' Punctuation
'this' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__Some' Name
'(' Punctuation
')' Punctuation
' ' Text
'=' Operator
'=' Operator
'>' Operator
' ' Text
'(' Punctuation
'\n' Text
' ' Text
'acc' Keyword
'(' Punctuation
'this' Name
'.' Punctuation
'Option__Node__Some__1' Name
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
' ' Text
'&' Operator
'&' Operator
'\n' Text
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Option__Node__Some__1' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
')' Punctuation
'\n' Text
'}' Punctuation
'\n' Text
'\n' Text
'field' Keyword
' ' Text
'Option__Node__Some__1' Name
':' Operator
' ' Text
'Ref' Keyword.Type
'\n' Text
'\n' Text
'field' Keyword
' ' Text
'Node__v' Name
':' Operator
' ' Text
'Int' Keyword.Type
'\n' Text
'field' Keyword
' ' Text
'Node__next' Name
':' Operator
' ' Text
'Ref' Keyword.Type
'\n' Text
'\n' Text
'predicate' Keyword
' ' Text
'validNode' Name
'(' Punctuation
'this' Name
':' Operator
' ' Text
'Ref' Keyword.Type
')' Punctuation
' ' Text
'{' Punctuation
'\n' Text
' ' Text
'acc' Keyword
'(' Punctuation
'this' Name
'.' Punctuation
'Node__v' Name
')' Punctuation
' ' Text
'&' Operator
'&' Operator
'\n' Text
' ' Text
'acc' Keyword
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'&' Operator
'&' Operator
'\n' Text
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
')' Punctuation
'\n' Text
'}' Punctuation
'\n' Text
'\n' Text
'\n' Text
'function' Keyword
' ' Text
'length' Name
'(' Punctuation
'this' Name
':' Operator
' ' Text
'Ref' Keyword.Type
')' Punctuation
':' Operator
' ' Text
'Int' Keyword.Type
'\n' Text
' ' Text
'requires' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'result' Keyword
' ' Text
'>' Operator
'=' Operator
' ' Text
'1' Literal.Number.Integer
'\n' Text
'{' Punctuation
'\n' Text
' ' Text
'(' Punctuation
'unfolding' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
' ' Text
'in' Keyword
'\n' Text
' ' Text
'unfolding' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
')' Punctuation
' ' Text
'in' Keyword
'\n' Text
' ' Text
'(' Punctuation
'variantOfOptionNode' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__None' Name
'(' Punctuation
')' Punctuation
')' Punctuation
' ' Text
'?' Operator
' \n ' Text
'1' Literal.Number.Integer
' ' Text
':' Operator
' ' Text
'1' Literal.Number.Integer
' ' Text
'+' Operator
' ' Text
'length' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
'.' Punctuation
'Option__Node__Some__1' Name
')' Punctuation
'\n' Text
' ' Text
')' Punctuation
'\n' Text
'}' Punctuation
'\n' Text
'\n' Text
'function' Keyword
' ' Text
'itemAt' Name
'(' Punctuation
'this' Name
':' Operator
' ' Text
'Ref' Keyword.Type
',' Punctuation
' ' Text
'i' Name
':' Operator
' ' Text
'Int' Keyword.Type
')' Punctuation
':' Operator
' ' Text
'Int' Keyword.Type
'\n' Text
' ' Text
'requires' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
' ' Text
'requires' Name.Decorator
' ' Text
'0' Literal.Number.Integer
' ' Text
'<' Operator
'=' Operator
' ' Text
'i' Name
' ' Text
'&' Operator
'&' Operator
' ' Text
'i' Name
' ' Text
'<' Operator
' ' Text
'length' Name
'(' Punctuation
'this' Name
')' Punctuation
'\n' Text
'{' Punctuation
'\n' Text
' ' Text
'unfolding' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
' ' Text
'in' Keyword
' ' Text
'unfolding' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
')' Punctuation
' ' Text
'in' Keyword
' ' Text
'(' Punctuation
'\n' Text
' ' Text
'(' Punctuation
'i' Name
' ' Text
'=' Operator
'=' Operator
' ' Text
'0' Literal.Number.Integer
')' Punctuation
' ' Text
'?' Operator
'\n' Text
' ' Text
'this' Name
'.' Punctuation
'Node__v' Name
':' Operator
'\n' Text
' ' Text
'(' Punctuation
'variantOfOptionNode' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__Some' Name
'(' Punctuation
')' Punctuation
')' Punctuation
' ' Text
'?' Operator
' \n ' Text
'itemAt' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
'.' Punctuation
'Option__Node__Some__1' Name
',' Punctuation
' ' Text
'i' Name
'-' Operator
'1' Literal.Number.Integer
')' Punctuation
' ' Text
':' Operator
' ' Text
'this' Name
'.' Punctuation
'Node__v' Name
'\n' Text
' ' Text
')' Punctuation
'\n' Text
'}' Punctuation
'\n' Text
'\n' Text
'function' Keyword
' ' Text
'sum' Name
'(' Punctuation
'this' Name
'$1' Name
':' Operator
' ' Text
'Ref' Keyword.Type
')' Punctuation
':' Operator
' ' Text
'Int' Keyword.Type
'\n' Text
' ' Text
'requires' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
'$1' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
'{' Punctuation
'\n' Text
' ' Text
'(' Punctuation
'unfolding' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
'$1' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
' ' Text
'in' Keyword
' ' Text
'unfolding' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'this' Name
'$1' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
')' Punctuation
' ' Text
'in' Keyword
' \n ' Text
'(' Punctuation
'variantOfOptionNode' Name
'(' Punctuation
'this' Name
'$1' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__None' Name
'(' Punctuation
')' Punctuation
')' Punctuation
' ' Text
'?' Operator
' ' Text
'this' Name
'$1' Name
'.' Punctuation
'Node__v' Name
' ' Text
':' Operator
' ' Text
'this' Name
'$1' Name
'.' Punctuation
'Node__v' Name
' ' Text
'+' Operator
' ' Text
'sum' Name
'(' Punctuation
'this' Name
'$1' Name
'.' Punctuation
'Node__next' Name
'.' Punctuation
'Option__Node__Some__1' Name
')' Punctuation
')' Punctuation
'\n' Text
'}' Punctuation
'\n' Text
'\n' Text
'method' Keyword
' ' Text
'append' Name
'(' Punctuation
'this' Name
':' Operator
' ' Text
'Ref' Keyword.Type
',' Punctuation
' ' Text
'val' Name
':' Operator
' ' Text
'Int' Keyword.Type
')' Punctuation
'\n' Text
' ' Text
'requires' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
' ' Text
'/*' Comment.Multiline
' POST1 ' Comment.Multiline
'*/' Comment.Multiline
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'length' Name
'(' Punctuation
'this' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'(' Punctuation
'old' Keyword
'(' Punctuation
'length' Name
'(' Punctuation
'this' Name
')' Punctuation
')' Punctuation
' ' Text
'+' Operator
' ' Text
'1' Literal.Number.Integer
')' Punctuation
' ' Text
'/*' Comment.Multiline
' POST2 ' Comment.Multiline
'*/' Comment.Multiline
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'(' Punctuation
'forall' Keyword
' ' Text
'i' Name
':' Operator
' ' Text
'Int' Keyword.Type
' ' Text
':' Operator
':' Operator
' ' Text
'(' Punctuation
'0' Literal.Number.Integer
' ' Text
'<' Operator
'=' Operator
' ' Text
'i' Name
' ' Text
'&' Operator
'&' Operator
' ' Text
'i' Name
' ' Text
'<' Operator
' ' Text
'old' Keyword
'(' Punctuation
'length' Name
'(' Punctuation
'this' Name
')' Punctuation
')' Punctuation
')' Punctuation
' ' Text
'=' Operator
'=' Operator
'>' Operator
' ' Text
'(' Punctuation
'itemAt' Name
'(' Punctuation
'this' Name
',' Punctuation
' ' Text
'i' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'old' Keyword
'(' Punctuation
'itemAt' Name
'(' Punctuation
'this' Name
',' Punctuation
' ' Text
'i' Name
')' Punctuation
')' Punctuation
')' Punctuation
')' Punctuation
' ' Text
'/*' Comment.Multiline
' POST3 ' Comment.Multiline
'*/' Comment.Multiline
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'itemAt' Name
'(' Punctuation
'this' Name
',' Punctuation
' ' Text
'length' Name
'(' Punctuation
'this' Name
')' Punctuation
' ' Text
'-' Operator
' ' Text
'1' Literal.Number.Integer
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'val' Name
' ' Text
'/*' Comment.Multiline
' POST4 ' Comment.Multiline
'*/' Comment.Multiline
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'true' Keyword
' ' Text
'=' Operator
'=' Operator
'>' Operator
' ' Text
'true' Keyword
'\n' Text
'{' Punctuation
'\n' Text
' ' Text
'var' Keyword
' ' Text
'tmp_node' Name
':' Operator
' ' Text
'Ref' Keyword.Type
'\n' Text
' ' Text
'var' Keyword
' ' Text
'tmp_option' Name
':' Operator
' ' Text
'Ref' Keyword.Type
'\n' Text
'\n' Text
' ' Text
'unfold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
' ' Text
'unfold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
'\n' Text
' ' Text
'if' Keyword
' ' Text
'(' Punctuation
'variantOfOptionNode' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__None' Name
'(' Punctuation
')' Punctuation
')' Punctuation
' ' Text
'{' Punctuation
'\n' Text
' ' Text
'tmp_node' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'new' Keyword
'(' Punctuation
'Node__next' Name
',' Punctuation
' ' Text
'Node__v' Name
')' Punctuation
'\n' Text
' ' Text
'tmp_node' Name
'.' Punctuation
'Node__next' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'null' Keyword
'\n' Text
' ' Text
'tmp_node' Name
'.' Punctuation
'Node__v' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'val' Name
'\n' Text
'\n' Text
' ' Text
'assume' Keyword
' ' Text
'variantOfOptionNode' Name
'(' Punctuation
'tmp_node' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__None' Name
'(' Punctuation
')' Punctuation
'\n' Text
' ' Text
'fold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'tmp_node' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'fold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'tmp_node' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
'\n' Text
' ' Text
'tmp_option' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'new' Keyword
'(' Punctuation
'Option__Node__Some__1' Name
')' Punctuation
'\n' Text
' ' Text
'tmp_option' Name
'.' Punctuation
'Option__Node__Some__1' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'tmp_node' Name
'\n' Text
' ' Text
'assume' Keyword
' ' Text
'variantOfOptionNode' Name
'(' Punctuation
'tmp_option' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__Some' Name
'(' Punctuation
')' Punctuation
'\n' Text
' ' Text
'fold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'tmp_option' Name
')' Punctuation
')' Punctuation
'\n' Text
'\n' Text
' ' Text
'this' Name
'.' Punctuation
'Node__next' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'tmp_option' Name
'\n' Text
'\n' Text
' \n ' Text
'unfold' Keyword
' ' Text
'validOption' Name
'(' Punctuation
'tmp_option' Name
')' Punctuation
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'length' Name
'(' Punctuation
'tmp_node' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'1' Literal.Number.Integer
' ' Text
'/*' Comment.Multiline
' TODO: Required by Silicon, POST2 fails otherwise ' Comment.Multiline
'*/' Comment.Multiline
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'itemAt' Name
'(' Punctuation
'tmp_node' Name
',' Punctuation
' ' Text
'0' Literal.Number.Integer
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'val' Name
' ' Text
'/*' Comment.Multiline
' TODO: Required by Silicon, POST4 fails otherwise ' Comment.Multiline
'*/' Comment.Multiline
'\n' Text
' ' Text
'fold' Keyword
' ' Text
'validOption' Name
'(' Punctuation
'tmp_option' Name
')' Punctuation
'\n' Text
' ' Text
'}' Punctuation
' ' Text
'else' Keyword
' ' Text
'{' Punctuation
'\n' Text
' ' Text
'append' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
'.' Punctuation
'Option__Node__Some__1' Name
',' Punctuation
' ' Text
'val' Name
')' Punctuation
'\n' Text
' ' Text
'fold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'this' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
' ' Text
'}' Punctuation
'\n' Text
'\n' Text
' ' Text
'fold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'this' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
'}' Punctuation
'\n' Text
'\n' Text
'method' Keyword
' ' Text
'prepend' Name
'(' Punctuation
'tail' Name
':' Operator
' ' Text
'Ref' Keyword.Type
',' Punctuation
' ' Text
'val' Name
':' Operator
' ' Text
'Int' Keyword.Type
')' Punctuation
' ' Text
'returns' Keyword
' ' Text
'(' Punctuation
'res' Name
':' Operator
' ' Text
'Ref' Keyword.Type
')' Punctuation
'\n' Text
' ' Text
'requires' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'tail' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'res' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'//ensures acc(validNode(tail))\n' Comment.Single
' ' Text
'ensures' Name.Decorator
' ' Text
'length' Name
'(' Punctuation
'res' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'old' Keyword
'(' Punctuation
'length' Name
'(' Punctuation
'tail' Name
')' Punctuation
')' Punctuation
' ' Text
'+' Operator
' ' Text
'1' Literal.Number.Integer
'\n' Text
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'(' Punctuation
'forall' Keyword
' ' Text
'i' Name
':' Operator
' ' Text
'Int' Keyword.Type
' ' Text
':' Operator
':' Operator
' ' Text
'(' Punctuation
'1' Literal.Number.Integer
' ' Text
'<' Operator
'=' Operator
' ' Text
'i' Name
' ' Text
'&' Operator
'&' Operator
' ' Text
'i' Name
' ' Text
'<' Operator
' ' Text
'length' Name
'(' Punctuation
'res' Name
')' Punctuation
')' Punctuation
' ' Text
'=' Operator
'=' Operator
'>' Operator
' ' Text
'(' Punctuation
'itemAt' Name
'(' Punctuation
'res' Name
',' Punctuation
' ' Text
'i' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'old' Keyword
'(' Punctuation
'itemAt' Name
'(' Punctuation
'tail' Name
',' Punctuation
' ' Text
'i' Name
'-' Operator
'1' Literal.Number.Integer
')' Punctuation
')' Punctuation
')' Punctuation
')' Punctuation
' ' Text
'/*' Comment.Multiline
' POST3 ' Comment.Multiline
'*/' Comment.Multiline
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'itemAt' Name
'(' Punctuation
'res' Name
',' Punctuation
' ' Text
'0' Literal.Number.Integer
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'val' Name
'\n' Text
'{' Punctuation
'\n' Text
' ' Text
'var' Keyword
' ' Text
'tmp_option' Name
':' Operator
' ' Text
'Ref' Keyword.Type
'\n' Text
'\n' Text
' ' Text
'res' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'new' Keyword
'(' Punctuation
'Node__v' Name
',' Punctuation
' ' Text
'Node__next' Name
')' Punctuation
'\n' Text
' ' Text
'res' Name
'.' Punctuation
'Node__v' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'val' Name
'\n' Text
'\n' Text
' ' Text
'tmp_option' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'new' Keyword
'(' Punctuation
'Option__Node__Some__1' Name
')' Punctuation
'\n' Text
' ' Text
'tmp_option' Name
'.' Punctuation
'Option__Node__Some__1' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'tail' Name
'\n' Text
' ' Text
'assume' Keyword
' ' Text
'variantOfOptionNode' Name
'(' Punctuation
'tmp_option' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__Some' Name
'(' Punctuation
')' Punctuation
'\n' Text
'\n' Text
' ' Text
'res' Name
'.' Punctuation
'Node__next' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'tmp_option' Name
'\n' Text
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'tail' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'fold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'res' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'fold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'res' Name
')' Punctuation
')' Punctuation
'\n' Text
'}' Punctuation
'\n' Text
'\n' Text
'method' Keyword
' ' Text
'length_iter' Name
'(' Punctuation
'list' Name
':' Operator
' ' Text
'Ref' Keyword.Type
')' Punctuation
' ' Text
'returns' Keyword
' ' Text
'(' Punctuation
'len' Name
':' Operator
' ' Text
'Int' Keyword.Type
')' Punctuation
'\n' Text
' ' Text
'requires' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'list' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'old' Keyword
'(' Punctuation
'length' Name
'(' Punctuation
'list' Name
')' Punctuation
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'len' Name
'\n' Text
' ' Text
'// TODO we have to preserve this property\n' Comment.Single
' ' Text
'// ensures acc(validNode(list))\n' Comment.Single
'{' Punctuation
'\n' Text
' ' Text
'var' Keyword
' ' Text
'curr' Name
':' Operator
' ' Text
'Ref' Keyword.Type
' ' Text
':' Operator
'=' Operator
' ' Text
'list' Name
'\n' Text
' ' Text
'var' Keyword
' ' Text
'tmp' Name
':' Operator
' ' Text
'Ref' Keyword.Type
' ' Text
':' Operator
'=' Operator
' ' Text
'list' Name
'\n' Text
'\n' Text
' ' Text
'len' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'1' Literal.Number.Integer
'\n' Text
'\n' Text
' ' Text
'unfold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'curr' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'unfold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'while' Keyword
'(' Punctuation
'variantOfOptionNode' Name
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__Some' Name
'(' Punctuation
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'invariant' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__v' Name
')' Punctuation
'\n' Text
' ' Text
'invariant' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
'\n' Text
' ' Text
'invariant' Name.Decorator
' ' Text
'(' Punctuation
'variantOfOptionNode' Name
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__Some' Name
'(' Punctuation
')' Punctuation
' ' Text
'=' Operator
'=' Operator
'>' Operator
' ' Text
'(' Punctuation
'\n' Text
' ' Text
'acc' Keyword
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
'.' Punctuation
'Option__Node__Some__1' Name
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
' ' Text
'&' Operator
'&' Operator
'\n' Text
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
'.' Punctuation
'Option__Node__Some__1' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'invariant' Name.Decorator
' ' Text
'(' Punctuation
'variantOfOptionNode' Name
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__Some' Name
'(' Punctuation
')' Punctuation
' ' Text
'=' Operator
'=' Operator
'>' Operator
' ' Text
'len' Name
' ' Text
'+' Operator
' ' Text
'length' Name
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
'.' Punctuation
'Option__Node__Some__1' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'old' Keyword
'(' Punctuation
'length' Name
'(' Punctuation
'list' Name
')' Punctuation
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'invariant' Name.Decorator
' ' Text
'(' Punctuation
'variantOfOptionNode' Name
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__None' Name
'(' Punctuation
')' Punctuation
' ' Text
'=' Operator
'=' Operator
'>' Operator
' ' Text
'len' Name
' ' Text
'=' Operator
'=' Operator
' ' Text
'old' Keyword
'(' Punctuation
'length' Name
'(' Punctuation
'list' Name
')' Punctuation
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'{' Punctuation
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
'.' Punctuation
'Option__Node__Some__1' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'len' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'len' Name
' ' Text
'+' Operator
' ' Text
'1' Literal.Number.Integer
'\n' Text
' ' Text
'tmp' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'curr' Name
'\n' Text
' ' Text
'curr' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'curr' Name
'.' Punctuation
'Node__next' Name
'.' Punctuation
'Option__Node__Some__1' Name
'\n' Text
' ' Text
'unfold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'curr' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'unfold' Keyword
' ' Text
'acc' Keyword
'(' Punctuation
'validOption' Name
'(' Punctuation
'curr' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
')' Punctuation
'\n' Text
' ' Text
'}' Punctuation
'\n' Text
'}' Punctuation
'\n' Text
'\n' Text
'method' Keyword
' ' Text
't1' Name
'(' Punctuation
')' Punctuation
'\n' Text
'{' Punctuation
'\n' Text
' ' Text
'var' Keyword
' ' Text
'l' Name
':' Operator
' ' Text
'Ref' Keyword.Type
'\n' Text
'\n' Text
' ' Text
'l' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'new' Keyword
'(' Punctuation
'Node__v' Name
',' Punctuation
' ' Text
'Node__next' Name
')' Punctuation
'\n' Text
' ' Text
'l' Name
'.' Punctuation
'Node__next' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'null' Keyword
'\n' Text
' ' Text
'l' Name
'.' Punctuation
'Node__v' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'1' Literal.Number.Integer
'\n' Text
' ' Text
'assume' Keyword
' ' Text
'variantOfOptionNode' Name
'(' Punctuation
'l' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'Option__Node__None' Name
'(' Punctuation
')' Punctuation
'\n' Text
'\n' Text
' ' Text
'fold' Keyword
' ' Text
'validOption' Name
'(' Punctuation
'l' Name
'.' Punctuation
'Node__next' Name
')' Punctuation
'\n' Text
' ' Text
'fold' Keyword
' ' Text
'validNode' Name
'(' Punctuation
'l' Name
')' Punctuation
'\n' Text
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'length' Name
'(' Punctuation
'l' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'1' Literal.Number.Integer
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'itemAt' Name
'(' Punctuation
'l' Name
',' Punctuation
' ' Text
'0' Literal.Number.Integer
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'1' Literal.Number.Integer
'\n' Text
'\n' Text
' ' Text
'append' Name
'(' Punctuation
'l' Name
',' Punctuation
' ' Text
'7' Literal.Number.Integer
')' Punctuation
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'itemAt' Name
'(' Punctuation
'l' Name
',' Punctuation
' ' Text
'1' Literal.Number.Integer
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'7' Literal.Number.Integer
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'itemAt' Name
'(' Punctuation
'l' Name
',' Punctuation
' ' Text
'0' Literal.Number.Integer
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'1' Literal.Number.Integer
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'length' Name
'(' Punctuation
'l' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'2' Literal.Number.Integer
'\n' Text
'\n' Text
' ' Text
'l' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'prepend' Name
'(' Punctuation
'l' Name
',' Punctuation
' ' Text
'10' Literal.Number.Integer
')' Punctuation
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'itemAt' Name
'(' Punctuation
'l' Name
',' Punctuation
' ' Text
'2' Literal.Number.Integer
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'7' Literal.Number.Integer
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'itemAt' Name
'(' Punctuation
'l' Name
',' Punctuation
' ' Text
'1' Literal.Number.Integer
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'1' Literal.Number.Integer
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'itemAt' Name
'(' Punctuation
'l' Name
',' Punctuation
' ' Text
'0' Literal.Number.Integer
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'10' Literal.Number.Integer
'\n' Text
' ' Text
'assert' Keyword
' ' Text
'length' Name
'(' Punctuation
'l' Name
')' Punctuation
' ' Text
'=' Operator
'=' Operator
' ' Text
'3' Literal.Number.Integer
'\n' Text
'\n' Text
' ' Text
'//assert sum(l) == 18\n' Comment.Single
'}' Punctuation
'\n' Text
'\n' Text
'method' Keyword
' ' Text
't2' Name
'(' Punctuation
'l' Name
':' Operator
' ' Text
'Ref' Keyword.Type
')' Punctuation
' ' Text
'returns' Keyword
' ' Text
'(' Punctuation
'res' Name
':' Operator
' ' Text
'Ref' Keyword.Type
')' Punctuation
'\n' Text
' ' Text
'requires' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'l' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'acc' Keyword
'(' Punctuation
'validNode' Name
'(' Punctuation
'res' Name
')' Punctuation
',' Punctuation
' ' Text
'write' Keyword
')' Punctuation
'\n' Text
' ' Text
'ensures' Name.Decorator
' ' Text
'length' Name
'(' Punctuation
'res' Name
')' Punctuation
' ' Text
'>' Operator
' ' Text
'old' Keyword
'(' Punctuation
'length' Name
'(' Punctuation
'l' Name
')' Punctuation
')' Punctuation
'\n' Text
'{' Punctuation
'\n' Text
' ' Text
'res' Name
' ' Text
':' Operator
'=' Operator
' ' Text
'prepend' Name
'(' Punctuation
'l' Name
',' Punctuation
' ' Text
'10' Literal.Number.Integer
')' Punctuation
'\n' Text
'}' Punctuation
'\n' Text