Daniel Kolesa [Thu, 11 Sep 2014 09:50:48 +0000 (10:50 +0100)]
eolian: remove Eo_Class_Def (fill bits still remaining)
Daniel Kolesa [Thu, 11 Sep 2014 09:37:41 +0000 (10:37 +0100)]
eolian: remove leftover code
Daniel Kolesa [Thu, 11 Sep 2014 09:29:48 +0000 (10:29 +0100)]
eolian: remove Eo_Method_Def
ChunEon Park [Thu, 11 Sep 2014 05:46:37 +0000 (14:46 +0900)]
evas: remove white trailing.
Daniel Zaoui [Thu, 11 Sep 2014 05:35:15 +0000 (08:35 +0300)]
Warning--
ChunEon Park [Thu, 11 Sep 2014 03:17:56 +0000 (12:17 +0900)]
evas: updated native surface documentation.
Daniel Kolesa [Wed, 10 Sep 2014 15:58:29 +0000 (16:58 +0100)]
eolian: remove Eo_Property_Def
Daniel Kolesa [Wed, 10 Sep 2014 15:46:34 +0000 (16:46 +0100)]
eolian: property cleanup
Daniel Kolesa [Wed, 10 Sep 2014 15:17:47 +0000 (16:17 +0100)]
eolian: remove Eo_Ret_Def
Daniel Kolesa [Wed, 10 Sep 2014 14:53:20 +0000 (15:53 +0100)]
eolian: remove accessor structures
Stefan Schmidt [Wed, 10 Sep 2014 14:29:22 +0000 (16:29 +0200)]
edje_cc: Remove no longer needed extern tmp_dir.
The last two user have been switched to eina_file_mkstemp so we don't
need to setup tmp_dir anymore.
Stefan Schmidt [Wed, 10 Sep 2014 14:27:34 +0000 (16:27 +0200)]
edje_cc_parse: Use eina_file_mkstemp() to avoid problems with umask
CID
1039618
Stefan Schmidt [Wed, 10 Sep 2014 13:41:59 +0000 (15:41 +0200)]
edje_cc: Use eina_file_mkstemp() to avoid problems with umask
In this case it also clears up the setup of temp dir.
CID
1039619
Stefan Schmidt [Wed, 10 Sep 2014 13:27:35 +0000 (15:27 +0200)]
edje_cc: Print out the right file name on the error message.
We failed to create sc->tmpo not tmpn here. Looks like a classical C&P error
Daniel Kolesa [Wed, 10 Sep 2014 14:22:04 +0000 (15:22 +0100)]
eolian: we can only have 2 accessors
Daniel Kolesa [Wed, 10 Sep 2014 14:06:12 +0000 (15:06 +0100)]
eolian: remove accessor params feature
Temporarily replace it with @const_get and @const_set tags in values section.
Daniel Kolesa [Wed, 10 Sep 2014 13:24:41 +0000 (14:24 +0100)]
eolian: remove Eo_Param_Def, reduce allocations, simplify code
kabeer khan [Wed, 10 Sep 2014 10:45:50 +0000 (12:45 +0200)]
eina: resolved TODO in eina tests - added delete array list
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1428
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Cedric BAIL [Tue, 9 Sep 2014 16:10:23 +0000 (18:10 +0200)]
ecore: fix documentation.
Daniel Kolesa [Tue, 9 Sep 2014 15:30:46 +0000 (16:30 +0100)]
elua: update eolian bindings to latest version
Daniel Kolesa [Tue, 9 Sep 2014 13:21:39 +0000 (14:21 +0100)]
eo: update the EFL to use builtin complex types
Cedric BAIL [Tue, 9 Sep 2014 10:29:42 +0000 (12:29 +0200)]
po: update translation position.
Cedric BAIL [Tue, 9 Sep 2014 10:29:13 +0000 (12:29 +0200)]
autotools: let's not forget to include necessary .eo for make check
Cedric BAIL [Tue, 9 Sep 2014 10:28:43 +0000 (12:28 +0200)]
autotools: let's not forget to ship lib/efl headers.
Cedric BAIL [Tue, 9 Sep 2014 10:27:51 +0000 (12:27 +0200)]
autotools: extra dist subdirs must be filled with all directory.
It is important to remember to also include the one we don't build.
Cedric BAIL [Tue, 9 Sep 2014 10:27:07 +0000 (12:27 +0200)]
autotools: We now have some headers in lib/efl that are not autogenerated.
Jérémy Zurcher [Mon, 8 Sep 2014 19:38:01 +0000 (21:38 +0200)]
eet: call LOCK_CACHE before altering Eet_File
even if not necessary in this particular case,
do as in eet_mmap() and eet_open(),
lock the cache before altering Eet_File struct.
fix CID
1039366 1039367 1039368 1039369
Stefan Schmidt [Mon, 8 Sep 2014 14:16:57 +0000 (16:16 +0200)]
ecore_evas/drm: Clarify error message if given device is not found.
While it is bad that the given device is not found we fall back here
to the default one. Still good to mention it in the error message as
it can be confusing when we read that the device could not be found
be it still works.
Stefan Schmidt [Mon, 8 Sep 2014 13:46:13 +0000 (15:46 +0200)]
evas-drm: Remove unused function prototype.
Daniel Kolesa [Mon, 8 Sep 2014 13:52:49 +0000 (14:52 +0100)]
eolian: builtin complex types
From now on, there are 5 builtin complex types, particularly accessor, array,
iterator, hash and list. All other types are simple - they can't have a complex
part. Also, the <> now binds to the type itself, not the pointer. More builtin
complex types will be added as needed.
Daniel Zaoui [Mon, 8 Sep 2014 10:44:07 +0000 (13:44 +0300)]
Ecore/Wayland: fix memory issue on exit.
When the application exits, an event cancels the DnD, that invokes the
Wayland release of data source but this was not setting an internal
pointer to NULL. ecore_wl_shutdown was then trying to use the same
Wayland API on the non-set internal pointer (via _ecore_wl_input_del),
that was leading to a segmentation fault.
This bug never occurred because some bug in Copy&Paste was preventing it
to reach this part of code.
Stefan Schmidt [Mon, 8 Sep 2014 11:22:20 +0000 (13:22 +0200)]
evas/drm: Remove evas-drm handling of the drm fd
We now longer have a use case for opening the drm file descriptor in the evas
engine itself. This is now all handled in ecore_drm or ecore evas.
Srivardhan Hebbar [Mon, 8 Sep 2014 11:18:53 +0000 (12:18 +0100)]
Documentation: Adding documentation for evas_object_textblock structures.
Summary:
This is a fix to one of the FIXME in the code, evas_object_textblock.c
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: herdsman, tasn
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1383
Jean Guyomarc'h [Mon, 8 Sep 2014 08:55:49 +0000 (10:55 +0200)]
autotools: abstract sockets are supported by Darwin
Reviewers: raster, raoulh, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1416
Daniel Zaoui [Thu, 4 Sep 2014 10:22:31 +0000 (13:22 +0300)]
Eolian/Generator: support @empty and @auto.
Local and base class functions are supported.
When @empty is provided, dummy functions (initializing the parameters with default
values if needed) are generated.
When @auto is provided on properties, access to internal data variables is done. On
set, it will assign parameters values to private data members. On get,
parameters are set with private data members values.
See the supplied tests as examples.
@feature
Kai Huuhko [Sun, 7 Sep 2014 17:15:00 +0000 (20:15 +0300)]
l10n: Add Finnish translations
Cedric BAIL [Sat, 6 Sep 2014 13:10:02 +0000 (15:10 +0200)]
evas: agressively freeze events on calculate callback and clear.
Cedric BAIL [Sat, 6 Sep 2014 13:08:17 +0000 (15:08 +0200)]
evas: let's freeze the canvas, shall we ?
This is a critical performance issue that was introduced during our move
to eo2. This code was still eo1 style so I guess it was just forgotten.
The result is that canvas with large numbers of widget were slower after
the migration.
@fix
Chris Michael [Fri, 5 Sep 2014 15:35:21 +0000 (11:35 -0400)]
ecore: Check that eo_data_scope_get returns valid Ecore_Timer_Data
before trying to use it
eo_data_scope_get Could return NULL if it does not find valid
ecore_timer_data on this object. We should check that return before
just Assuming that timer data is valid.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Daniel Kolesa [Fri, 5 Sep 2014 15:30:56 +0000 (16:30 +0100)]
eolian: remove bool returns from some cases that cannot fail
Daniel Kolesa [Fri, 5 Sep 2014 15:27:29 +0000 (16:27 +0100)]
eolian: further improve implement tests so they make more sense
Daniel Kolesa [Fri, 5 Sep 2014 15:25:20 +0000 (16:25 +0100)]
eolian: improve tests (add more checks on virtual implements)
Daniel Kolesa [Fri, 5 Sep 2014 15:21:39 +0000 (16:21 +0100)]
eolian: cleanup
Daniel Kolesa [Fri, 5 Sep 2014 15:19:56 +0000 (16:19 +0100)]
eolian: remove some ifs in database_fill
Daniel Kolesa [Fri, 5 Sep 2014 15:18:47 +0000 (16:18 +0100)]
eolian: some minor refactoring
Daniel Kolesa [Fri, 5 Sep 2014 15:04:08 +0000 (16:04 +0100)]
eolian: better handling of @virtual implements
Now they're registered correctly. Also, add new API, eolian_implement_is_virtual.
Also, deal with get/set properly (when filling in additional implements)
Stefan Schmidt [Fri, 5 Sep 2014 14:26:59 +0000 (16:26 +0200)]
evas/drm: Remove trailing whitespace.
That one was looking at me each time I opened the file. Get away!
Stefan Schmidt [Fri, 5 Sep 2014 14:15:22 +0000 (16:15 +0200)]
evas/gl_drm: Follow change form evas_drm and remove tty_won and tty struct members
The evas_gl_drm engine followed the changes from evas_drm so we can safely
remove them here as well.
Stefan Schmidt [Fri, 5 Sep 2014 13:55:08 +0000 (15:55 +0200)]
evas/drm: Remove now obsolete tty and own_tty struct members
We used these when expedite was using evas directly without ecore_evas.
That changed and we can now leave tty custody to ecore_evas and ecore_drm.
Daniel Kolesa [Fri, 5 Sep 2014 11:01:37 +0000 (12:01 +0100)]
eolian: update docs on implements
Daniel Kolesa [Fri, 5 Sep 2014 09:43:50 +0000 (10:43 +0100)]
eolian: use implements only to retrieve functions list
This also changes the implements list so that it also includes virtual functions.
Daniel Kolesa [Fri, 5 Sep 2014 09:04:11 +0000 (10:04 +0100)]
eolian: skip UTF-8 BOM if present
Youngbok Shin [Fri, 5 Sep 2014 08:10:04 +0000 (09:10 +0100)]
evas: remove duplicate function call in evas_shutdown().
Summary:
evas_font_dir_cache_free() is called twice in evas_shutdown().
evas_common_shutdown() will call evas_font_dir_cache_free().
Test Plan: NONE
Reviewers: tasn, woohyun
Subscribers: herdsman, cedric
Differential Revision: https://phab.enlightenment.org/D1417
zmike [Fri, 5 Sep 2014 01:05:05 +0000 (21:05 -0400)]
edje embryo stop_program() should stop pending actions
ACTION_STOP already does this
@fix
Chris Michael [Thu, 4 Sep 2014 19:33:17 +0000 (15:33 -0400)]
ecore-evas-drm: Remove extra blank space in parameter
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Cedric BAIL [Fri, 1 Aug 2014 10:21:40 +0000 (12:21 +0200)]
eo: do not call eina_tls_get as often when in the main loop.
eina_tls_get is really slow, having a fast path for the main loop does really
help us right now. It is also unlikely that slowing down a little bit the use
of eo in thread is going to have any impact on application speed any time soon.
I win a +10% on expedite benchmark compared to without.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Chris Michael [Thu, 4 Sep 2014 15:16:21 +0000 (11:16 -0400)]
evas-drm: Fix evas-drm picking incorrect resolution/mode for outputs
This fixes an issue where we had to hard-code the resolution in the
wl_drm module. Instead, we now properly get the current screen
resolution/mode from the drm library and use that.
NB: This is needed to fix wl_drm module in Enlightenment to setup the
proper resolution.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 4 Sep 2014 14:08:56 +0000 (10:08 -0400)]
evas-drm: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 4 Sep 2014 14:07:37 +0000 (10:07 -0400)]
ecore-evas-drm: Remove dead comment
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 4 Sep 2014 14:03:28 +0000 (10:03 -0400)]
ecore-evas-drm: Add function to return screen geometry
This adds the ecore_evas function pointer for
ecore_evas_screen_geometry_get. This will be used from the drm
compositor to return the current screen geometry.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 4 Sep 2014 14:02:24 +0000 (10:02 -0400)]
ecore-drm: Add API function to get screen geometry
This adds a function that we can call from ecore_evas to get the
screen_geometry
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 4 Sep 2014 14:01:33 +0000 (10:01 -0400)]
ecore-drm: Add API function for getting screen geometry
This adds an API function that we can call to return the screen
geometry. This will be used from ecore_evas to get the screen_geometry.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Jean Guyomarc'h [Thu, 4 Sep 2014 15:08:22 +0000 (17:08 +0200)]
autotools: clean-up lua/luajit requirements
Reviewers: raster, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1380
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Daniel Kolesa [Thu, 4 Sep 2014 14:15:38 +0000 (15:15 +0100)]
eolian: cache function in implements where possible to get O(1) lookup
Daniel Kolesa [Thu, 4 Sep 2014 13:48:39 +0000 (14:48 +0100)]
eolian: generate implements for every method/property
Daniel Kolesa [Thu, 4 Sep 2014 13:29:33 +0000 (14:29 +0100)]
eolian: prepare for implements list expansion
As the implements list will soon contain all methods and properties,
do some preparations. The Eolian library now fills in class field in
implements early on when the implement is local. The Eolian C generator
now checks for local implements and skips them (so that things don't break).
Stefan Schmidt [Thu, 4 Sep 2014 13:09:17 +0000 (15:09 +0200)]
edje_edit: Check return of _edje_part_description_find_byname
If this retruns NULL we would do a NULL deref some lines below. Better check.
CID
1222458 1222457
Stefan Schmidt [Thu, 4 Sep 2014 12:44:33 +0000 (14:44 +0200)]
edje_edit: Another instance where we need to check the return of eet_list
Return could be NULL so check here before derefenrcing ent.
CID
1224764
Stefan Schmidt [Thu, 4 Sep 2014 12:18:58 +0000 (14:18 +0200)]
edje_edit: Check return value of eet_list() to avoid NULL dereference.
We check eet_list elsewhere and it might retrun NULL. Don't just hope
keys will never be NULL. Check it.
CID
1232733
Gwanglim Lee [Thu, 4 Sep 2014 11:20:17 +0000 (13:20 +0200)]
gl-drm: Make use of ecore_drm for handling tty
Summary:
Now, evas gl-drm engine is using ecore_drm instead of its own code to handle tty.
This patch has removed obsolete tty handling codes from engine. It is almost the same as what
Stefan Schmidt did to evas drm engine.
Test Plan: N/A
Reviewers: devilhorns, cedric, raster, stefan_schmidt
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1409
Stefan Schmidt [Thu, 4 Sep 2014 11:16:30 +0000 (13:16 +0200)]
ecore_x_vsync: Remove ahadowign variable.
Also make sure we reset ok to FALSE here to keep the logic below correct.
This was actually a vlaid local shadow problem.
Daniel Kolesa [Thu, 4 Sep 2014 10:06:41 +0000 (11:06 +0100)]
eolian: fix auto/empty parsing/fill and add tests
Stefan Schmidt [Thu, 4 Sep 2014 09:26:26 +0000 (11:26 +0200)]
edje_edit: Check return of _edje_edit_edje_file_save and close files if we fail
We check the retrun of _edje_edit_edje_file_save everywhere else and should do
here as well.
CID
1224759
Stefan Schmidt [Thu, 4 Sep 2014 09:19:31 +0000 (11:19 +0200)]
evas/cserve2: Check return value of fcntl
Print an error when not able to set non-blocking but continue.
CID
1039707
Carsten Haitzler (Rasterman) [Thu, 4 Sep 2014 09:12:15 +0000 (18:12 +0900)]
ecore - x vsync - whitelies only intel drm driver
do a version/driver name check and only support intel (as it's the one
i KNOW works - except if you turn on EXA).
Stefan Schmidt [Thu, 4 Sep 2014 08:57:19 +0000 (10:57 +0200)]
ecore_con: Make sure host_server is not NUL before dereferencing
This was intended to get fixed in
f53683f76a8325f964051a4acfa2c74e460d5d8f
CID
1232731
Stefan Schmidt [Thu, 4 Sep 2014 08:35:05 +0000 (10:35 +0200)]
eldbus: Only call va_end() if the signature does not match after rewrite
If git log is right this is patch number 4 for this CID. Lets hope we handle all
cases for starting and ending va now.
CID
1039883
Gwanglim Lee [Thu, 4 Sep 2014 07:58:23 +0000 (09:58 +0200)]
gl-drm: Fix build warnings
Summary: Fix unused paramater and parentheses around assignment.
Test Plan: N/A
Reviewers: devilhorns, cedric, stefan_schmidt, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1408
Gwanglim Lee [Thu, 4 Sep 2014 07:43:53 +0000 (09:43 +0200)]
ecore-drm: Remove duplicated tty fd check
Summary:
No need to check tty fd again as we just did that.
Remove this and adjust indent.
Test Plan: N/A
Reviewers: devilhorns, stefan_schmidt, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1407
Cedric BAIL [Thu, 4 Sep 2014 06:54:08 +0000 (08:54 +0200)]
evas: let's bet consistent and not break the build.
Irfan Abdul [Wed, 3 Sep 2014 20:08:30 +0000 (22:08 +0200)]
edje: Edje_Edit - add code to generate edc source for all transition types in programs
Summary:
Add code to generate edc source for all transition types used in program block.
_edje_generate_source_of_program() api generates program source code from the edje object.
Very few transition types are handled in the function. Added code to generate edc source
code for all the transition types.
Reviewers: govi, raster, jpeg, zmike, cedric
@feature
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1367
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Jean Guyomarc'h [Wed, 3 Sep 2014 18:34:52 +0000 (20:34 +0200)]
ecore_cocoa: NSRunLoop integration
Summary: Get rid of the old NSApplicationLoad() which was aimed to be use with Carbon. Unless the NSRunLoop is strictly integrated to the ecore_main_loop() (where cocoa events would be checked when entering the ecore_main_loop) I think the poller is the only option left.
Reviewers: raster, naguirre, raoulh, stefan_schmidt, cedric
@feature
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1222
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Philippe Coval [Wed, 3 Sep 2014 16:23:59 +0000 (18:23 +0200)]
evas: fix build on armv7l.
Summary:
Without compilation will fail on :
error: unknown type name 'pix_type'
error: expected identifier or '(' before 'else'
Applies to efl-1.11.0 and later
Bug: https://phab.enlightenment.org/T1620
Bug-Tizen: PTREL-737/part
Change-Id: Idbcb442803ed6559698b2a371d1d6c584ec053e0
Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
Test Plan:
gbs build -P "profile.tizen_common_armv7l" --arch armv7l --include-all
@fix
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1399
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Cedric BAIL [Wed, 3 Sep 2014 15:14:39 +0000 (17:14 +0200)]
eo: let's be consistent and use the portable flag MAP_ANON.
Cedric BAIL [Wed, 3 Sep 2014 15:01:14 +0000 (17:01 +0200)]
edje: let's not depend on sndfile.
Daniel Kolesa [Wed, 3 Sep 2014 13:44:23 +0000 (14:44 +0100)]
eolian: wrong condition fix
Daniel Kolesa [Wed, 3 Sep 2014 13:25:50 +0000 (14:25 +0100)]
eolian: APIs to check auto/empty on a function
ChunEon Park [Wed, 3 Sep 2014 12:30:17 +0000 (21:30 +0900)]
Revert "evas: Evas_3D - add .eet export/import"
This reverts commit
9ebb28e3d6690f8548309fd97d2037c9e4ef2c07.
I didn't mean pushing this patch...
sorry.
Dmytro Dadyka [Wed, 3 Sep 2014 12:06:03 +0000 (21:06 +0900)]
[Evas/evas-3d] Add shadow maps. Added two scene-API functions for enable and disable shadows on the scene. Added 6 light-API function for set and get the light projection.
Reviewers: raster, cedric, Hermet
Subscribers: raster, cedric
Differential Revision: https://phab.enlightenment.org/D1330
ChunEon Park [Wed, 3 Sep 2014 12:05:27 +0000 (21:05 +0900)]
Merge branch 'master' of ssh://git.enlightenment.org/core/efl
Daniel Zaoui [Wed, 3 Sep 2014 08:27:09 +0000 (11:27 +0300)]
Eolian/Parser: fix wrong type allocation.
fix CID
1234600
Carsten Haitzler (Rasterman) [Wed, 3 Sep 2014 07:57:01 +0000 (16:57 +0900)]
emotion - gst 0.10 - fix build after volume change/fix
Daniel Zaoui [Tue, 2 Sep 2014 14:00:14 +0000 (17:00 +0300)]
Eolian/Generator: support params initialization.
This is needed when get properties or methods have to return a
value in case of failure or to initialize parameters.
The way used is to generate an intermediate function that will
initialize the parameters and then invoke the "user" function.
ChunEon Park [Wed, 3 Sep 2014 01:57:38 +0000 (10:57 +0900)]
Merge branch 'master' of ssh://git.enlightenment.org/core/efl
Mike Blumenkrantz [Tue, 2 Sep 2014 19:16:40 +0000 (15:16 -0400)]
edje_cc now throws an error during link combination when the current part has no name
@fix
Stefan Schmidt [Tue, 2 Sep 2014 15:10:47 +0000 (17:10 +0200)]
examples: Add latest example binaries to .gitignore
These are build and should be ignored by git.
Tom Hacohen [Tue, 2 Sep 2014 14:40:20 +0000 (15:40 +0100)]
Updated gitignore.
Cedric BAIL [Tue, 2 Sep 2014 14:03:45 +0000 (16:03 +0200)]
evas: actually just define the right number of events.
Cedric BAIL [Tue, 2 Sep 2014 13:32:53 +0000 (15:32 +0200)]
evas: forgotten evas canvas event EVAS_CANVAS_EVENT_DEVICE_CHANGED.
Daniel Kolesa [Tue, 2 Sep 2014 12:32:47 +0000 (13:32 +0100)]
eolian: new APIs for expression analysis
This adds a few new APIs to retrieve the type of an expression, operators
for binary and unary expressions, lhs/rhs for binary expressions, expr for
unary expressions and value for other expressions.