eolian_cxx: rework context code, also more flexible scope indentation generator
authorVitor Sousa <vitorsousa@expertisesolutions.com.br>
Fri, 22 Mar 2019 21:34:29 +0000 (18:34 -0300)
committerYeongjong Lee <yj34.lee@samsung.com>
Tue, 2 Apr 2019 03:45:17 +0000 (12:45 +0900)
commitdc1b0487b94552b6f8304c448ee11bebcc56f148
tree2d22b76a5dc9729445f1e22e3b086e9f23e013fd
parentf2ecbab4a05d9b61d4c3335654f88d1fae7c3e38
eolian_cxx: rework context code, also more flexible scope indentation generator

Summary:
Context management classes now store constant copies of the tags they
are supposed to hold. So, they are immutable objects now.
Functions that manipulate context create new object copies as needed.
`constexpr` was added for class constructor and functions.

Indentation generator now used four space by default.
Also, the amount of desired spaces can now be specified at call site.

Added helper methods to return 'indented' and 'unindented' version of a
given indentation generator object.

Test Plan: ninja test

Reviewers: felipealmeida, lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8467
src/lib/eolian_cxx/grammar/context.hpp
src/lib/eolian_cxx/grammar/indentation.hpp