translation_unit
comment "//"
comment "// lager - library for functional interactive c++ programs"
comment "// Copyright (C) 2017 Juan Pedro Bolivar Puente"
comment "//"
comment "// This file is part of lager."
comment "//"
comment "// lager is free software: you can redistribute it and/or mo"...
comment "// it under the terms of the MIT License, as detailed in the"...
comment "// file located at the root of this source code distribution"...
comment "// or here: <https://github.com/arximboldi/lager/blob/master"...
comment "//"
preproc_include
#include "#include"
system_lib_string "<catch2/catch.hpp>"
preproc_include
#include "#include"
system_lib_string "<lager/constant.hpp>"
preproc_include
#include "#include"
system_lib_string "<lager/cursor.hpp>"
preproc_include
#include "#include"
system_lib_string "<lager/reader.hpp>"
preproc_include
#include "#include"
system_lib_string "<lager/state.hpp>"
preproc_include
#include "#include"
system_lib_string "<lager/writer.hpp>"
preproc_include
#include "#include"
system_lib_string "<lager/lenses.hpp>"
preproc_include
#include "#include"
system_lib_string "<lager/lenses/tuple.hpp>"
preproc_include
#include "#include"
system_lib_string "<zug/transducer/filter.hpp>"
preproc_include
#include "#include"
system_lib_string "<zug/transducer/map.hpp>"
preproc_include
#include "#include"
system_lib_string "<boost/fusion/include/adapt_struct.hpp>"
preproc_include
#include "#include"
system_lib_string "<boost/fusion/include/comparison.hpp>"
preproc_include
#include "#include"
system_lib_string "<immer/vector.hpp>"
preproc_include
#include "#include"
system_lib_string "<vector>"
preproc_include
#include "#include"
string_literal
" "\""
string_content "spies.hpp"
" "\""
using_declaration
using "using"
namespace "namespace"
identifier "lager"
; ";"
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "in, construction and assignment from temporary"
" "\""
) ")"
; ""
compound_statement (+60 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "out, construction_and_assignment_from_temporary"
" "\""
) ")"
; ""
compound_statement (+94 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "inout, construction_and_assignment_from_temporary"
" "\""
) ")"
; ""
compound_statement (+109 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "values, relaxing_requirements_works"
" "\""
) ")"
; ""
compound_statement (+97 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "in, watching_and_getting"
" "\""
) ")"
; ""
compound_statement (+115 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "inout, watching_and_setting_and_getting"
" "\""
) ")"
; ""
compound_statement (+115 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "out, setting"
" "\""
) ")"
; ""
compound_statement (+72 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "values, scoped watching"
" "\""
) ")"
; ""
compound_statement (+166 nodes collapsed)
struct_specifier
struct "struct"
type_identifier "yearday"
field_declaration_list
{ "{"
field_declaration
primitive_type "int"
field_identifier "day"
; ";"
field_declaration
primitive_type "int"
field_identifier "month"
; ";"
} "}"
; ";"
expression_statement
call_expression
identifier "BOOST_FUSION_ADAPT_STRUCT"
argument_list
( "("
identifier "yearday"
, ","
identifier "day"
, ","
identifier "month"
) ")"
; ";"
struct_specifier (+36 nodes collapsed)
; ";"
expression_statement
call_expression
identifier "BOOST_FUSION_ADAPT_STRUCT"
argument_list
( "("
identifier "person"
, ","
identifier "birthday"
, ","
identifier "name"
) ")"
; ";"
using_declaration
using "using"
qualified_identifier
namespace_identifier "boost"
:: "::"
qualified_identifier
namespace_identifier "fusion"
:: "::"
qualified_identifier
namespace_identifier "operators"
:: "::"
operator_name
operator "operator"
== "=="
; ";"
using_declaration
using "using"
qualified_identifier
namespace_identifier "boost"
:: "::"
qualified_identifier
namespace_identifier "fusion"
:: "::"
qualified_identifier
namespace_identifier "operators"
:: "::"
operator_name
operator "operator"
!= "!="
; ";"
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "zooming, unfocused"
" "\""
) ")"
; ""
compound_statement (+177 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "zooming, unfocused, immutable"
" "\""
) ")"
; ""
compound_statement (+274 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "in, constant"
" "\""
) ")"
; ""
compound_statement (+61 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "automatic_tag edge case"
" "\""
) ")"
; ""
compound_statement (+335 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "lenses over with expression"
" "\""
) ")"
; ""
compound_statement (+149 nodes collapsed)
struct_specifier
struct "struct"
type_identifier "Foo"
; ";"
struct_specifier (+35 nodes collapsed)
; ";"
struct_specifier (+29 nodes collapsed)
; ";"
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "forward declare a reader value"
" "\""
) ")"
; ""
compound_statement (+35 nodes collapsed)
struct_specifier
struct "struct"
type_identifier "Foo"
field_declaration_list
{ "{"
} "}"
; ";"
function_definition (+40 nodes collapsed)
function_definition (+27 nodes collapsed)
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "watch filtered xform of optional ints | update default value"
" "\""
) ")"
; ""
compound_statement
{ "{"
declaration
template_type
type_identifier "state"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "optional"
template_argument_list
< "<"
type_descriptor
primitive_type "int"
> ">"
> ">"
identifier "state"
; ";"
expression_statement
call_expression
identifier "REQUIRE"
argument_list
( "("
binary_expression
call_expression
field_expression
identifier "state"
. "."
field_identifier "get"
argument_list
( "("
) ")"
== "=="
qualified_identifier
namespace_identifier "std"
:: "::"
identifier "nullopt"
) ")"
; ";"
declaration
qualified_identifier
namespace_identifier "lager"
:: "::"
template_type
type_identifier "reader"
template_argument_list
< "<"
type_descriptor
primitive_type "int"
> ">"
init_declarator
identifier "reader"
= "="
call_expression
field_expression
identifier "state"
. "."
field_identifier "xform"
argument_list
( "("
binary_expression
call_expression
qualified_identifier
namespace_identifier "zug"
:: "::"
identifier "filter"
argument_list
( "("
lambda_expression
lambda_capture_specifier
[ "["
] "]"
abstract_function_declarator
parameter_list
( "("
parameter_declaration
placeholder_type_specifier
auto "auto"
identifier "opt"
) ")"
compound_statement
{ "{"
return_statement
return "return"
call_expression
field_expression
identifier "opt"
. "."
field_identifier "has_value"
argument_list
( "("
) ")"
; ";"
} "}"
) ")"
| "|"
call_expression
qualified_identifier
namespace_identifier "zug"
:: "::"
identifier "map"
argument_list
( "("
lambda_expression
lambda_capture_specifier
[ "["
] "]"
abstract_function_declarator
parameter_list
( "("
parameter_declaration
placeholder_type_specifier
auto "auto"
identifier "opt"
) ")"
compound_statement
{ "{"
return_statement
return "return"
pointer_expression
* "*"
identifier "opt"
; ";"
} "}"
) ")"
) ")"
; ";"
declaration
primitive_type "int"
init_declarator
identifier "called"
initializer_list
{ "{"
} "}"
; ";"
expression_statement
call_expression
identifier "watch"
argument_list
( "("
identifier "reader"
, ","
lambda_expression
lambda_capture_specifier
[ "["
lambda_default_capture
& "&"
] "]"
abstract_function_declarator
parameter_list
( "("
parameter_declaration
placeholder_type_specifier
auto "auto"
) ")"
compound_statement
{ "{"
expression_statement
update_expression
++ "++"
identifier "called"
; ";"
} "}"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "state"
. "."
field_identifier "set"
argument_list
( "("
number_literal "0"
) ")"
; ";"
expression_statement
call_expression
identifier "commit"
argument_list
( "("
identifier "state"
) ")"
; ";"
expression_statement
call_expression
identifier "REQUIRE"
argument_list
( "("
binary_expression
call_expression
field_expression
identifier "state"
. "."
field_identifier "get"
argument_list
( "("
) ")"
== "=="
number_literal "0"
) ")"
; ";"
comment "// bug! not notified of value change"
expression_statement
call_expression
identifier "CHECK"
argument_list
( "("
binary_expression
identifier "called"
== "=="
number_literal "1"
) ")"
; ";"
} "}"
expression_statement
call_expression
identifier "TEST_CASE"
argument_list
( "("
string_literal
" "\""
string_content "watch filtered xform of optional strings | update default va"...
" "\""
) ")"
; ""
compound_statement
{ "{"
declaration
template_type
type_identifier "state"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "optional"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "std"
:: "::"
type_identifier "string"
> ">"
> ">"
identifier "state"
; ";"
expression_statement
call_expression
identifier "REQUIRE"
argument_list
( "("
binary_expression
call_expression
field_expression
identifier "state"
. "."
field_identifier "get"
argument_list
( "("
) ")"
== "=="
qualified_identifier
namespace_identifier "std"
:: "::"
identifier "nullopt"
) ")"
; ";"
declaration
qualified_identifier
namespace_identifier "lager"
:: "::"
template_type
type_identifier "reader"
template_argument_list
< "<"
type_descriptor
qualified_identifier
namespace_identifier "std"
:: "::"
type_identifier "string"
> ">"
init_declarator
identifier "reader"
= "="
call_expression
field_expression
identifier "state"
. "."
field_identifier "xform"
argument_list
( "("
binary_expression
call_expression
qualified_identifier
namespace_identifier "zug"
:: "::"
identifier "filter"
argument_list
( "("
lambda_expression
lambda_capture_specifier
[ "["
] "]"
abstract_function_declarator
parameter_list
( "("
parameter_declaration
placeholder_type_specifier
auto "auto"
identifier "opt"
) ")"
compound_statement
{ "{"
return_statement
return "return"
call_expression
field_expression
identifier "opt"
. "."
field_identifier "has_value"
argument_list
( "("
) ")"
; ";"
} "}"
) ")"
| "|"
call_expression
qualified_identifier
namespace_identifier "zug"
:: "::"
identifier "map"
argument_list
( "("
lambda_expression
lambda_capture_specifier
[ "["
] "]"
abstract_function_declarator
parameter_list
( "("
parameter_declaration
placeholder_type_specifier
auto "auto"
identifier "opt"
) ")"
compound_statement
{ "{"
return_statement
return "return"
pointer_expression
* "*"
identifier "opt"
; ";"
} "}"
) ")"
) ")"
; ";"
declaration
primitive_type "int"
init_declarator
identifier "called"
initializer_list
{ "{"
} "}"
; ";"
expression_statement
call_expression
identifier "watch"
argument_list
( "("
identifier "reader"
, ","
lambda_expression
lambda_capture_specifier
[ "["
lambda_default_capture
& "&"
] "]"
abstract_function_declarator
parameter_list
( "("
parameter_declaration
placeholder_type_specifier
auto "auto"
) ")"
compound_statement
{ "{"
expression_statement
update_expression
++ "++"
identifier "called"
; ";"
} "}"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "state"
. "."
field_identifier "set"
argument_list
( "("
string_literal
" "\""
" "\""
) ")"
; ";"
expression_statement
call_expression
identifier "commit"
argument_list
( "("
identifier "state"
) ")"
; ";"
expression_statement
call_expression
identifier "REQUIRE"
argument_list
( "("
binary_expression
call_expression
field_expression
identifier "state"
. "."
field_identifier "get"
argument_list
( "("
) ")"
== "=="
string_literal
" "\""
" "\""
) ")"
; ";"
comment "// bug! not notified of value change"
expression_statement
call_expression
identifier "CHECK"
argument_list
( "("
binary_expression
identifier "called"
== "=="
number_literal "1"
) ")"
; ";"
} "}"