History log of /system/tools/hidl/hidl-gen_l.ll
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6081863ce80ff231323a54e97072a17227a56820 04-Feb-2017 Steven Moreland <smoreland@google.com> Add -Werror.

Also, fixed several warnings (including one bug in generateCppImpl.cpp).

Test: compiles

Bug: 32559427

Change-Id: I78375b9052c0ad447ebac638258f25bbf562712f
/system/tools/hidl/hidl-gen_l.ll
333a6d2f842fdf8938aeae5fea0295fe2d7c6bcd 12-Jan-2017 Yifan Hong <elsk@google.com> Do not allow package with missing version

e.g. android.hardware.foo::IFoo is not allowed.

Also, the regex rules in hidl-gen_l.ll and in FQName.cpp
was not consistent (optional version in hidl-gen_l.ll but
only minor version is optional in hidl-gen_y.yy). Hence
android.hardware.foo::IFoo has always been not allowed.
Still, the "?" is removed in both to make the rules consistent,
and there are explict checks in FQName::setTo and
FQName::applyDefaults to prevent this.

Test: compiles with mma
Change-Id: I9fd0a474c0313ab7c86c37f58f081a2c5a9b559c
/system/tools/hidl/hidl-gen_l.ll
a32bde87bb8341954d297ff889a62fb6abc6d3a1 27-Dec-2016 Hridya Valsaraju <hridya@google.com> Add FmqType to templatize MQDescriptor

Also removed PredefinedType and renamed MQDescriptorSync to
fmq_sync and MQDescriptorUnsync to fmq_unsync.

Test: FMQ unit tests.
Bug: 33948735

Merged-In: I7f2802b76000a1e1a55d02381cca202530a0cd18
Change-Id: I7f2802b76000a1e1a55d02381cca202530a0cd18
/system/tools/hidl/hidl-gen_l.ll
115d428f9c38c078d679a98942c47ce4a17bd599 19-Dec-2016 Martijn Coenen <maco@google.com> Add (un)linkToDeath to generated interfaces.

(un)linkToDeath is now a part of IBase, and can be
called on any generated HIDL interface. The implementation
is a no-op, except in proxy objects, which are by
definition a different process than the interface they point
to.

Since clients are not aware of the transport implementation, we must
wrap the transport-independent callback in a transport-specific
callback object. In case of binder, that object is a
hidl_binder_death_recipient.

The binder proxy object contains a list of registered death
recipients, as well as a mutex to protect access to the list.
The list is required to allow us to map back transport-independent
callbacks to transport-dependent callbacks in unlinkToDeath().

Bug: 31632518
Test: mma, hidl_test
Change-Id: I5083a8789dd706a886a8a09f8c733031a351a36a
/system/tools/hidl/hidl-gen_l.ll
c57c8bb9f368faca636bdb6b39773e72255e8b08 01-Dec-2016 Yifan Hong <elsk@google.com> Add a bitfield type.

It is possible to say
enum MyEnum : int8_t {...};
...
bitfield<MyEnum>
in HIDL. In the above example, bitfield<MyEnum>
simply translates to int8_t.

Change mutating |= and &= to allow only (e.g.)
int8_t s = 0;
s |= MyEnum::VAL1;

Bug: 31702236
Test: hidl_test
Change-Id: I8d79975bb48e1ffd3af4726a52ef3678dac60115
/system/tools/hidl/hidl-gen_l.ll
99e6bebc96d75d1c9b9b8130cd9b880dacb95b01 01-Dec-2016 Martijn Coenen <maco@google.com> memory -> hidl_memory and pointer -> hidl_pointer

Test: hidl_test
Change-Id: Id71c742867be01e80cd48f689c0c619f6b647aac
/system/tools/hidl/hidl-gen_l.ll
244e82d34bf0ef5d8d5b0730a9dea3e3fc4de7c5 11-Nov-2016 Yifan Hong <elsk@google.com> move read/writeEmbedded[References]From/ToParcel out

from hidl_string, hidl_vec, and structs.

* Add a hwtypes.h in the autogenerated files, which
contains the read/writeEmbeddedFrom/ToParcel
methods for structs defined in types.h.

* Fixes the hack that remove the warnings when compiling
the generated code (useParentInEmitResolveReferencesEmbedded())
and add one more hack (useNameInEmitReaderWriterEmbedded())

* Some clean-up on Scope.cpp (add a forEachType function)

Test: mma
Test: hidl_test

Bug: 32756130

Change-Id: Icfd116b5d92fef78d257337c3f2ef02071f7600b
/system/tools/hidl/hidl-gen_l.ll
be627b3383497c7cc6d2eeb26052f9d7fd128b6b 29-Oct-2016 Yifan Hong <elsk@google.com> hidl-gen: some error recovery.

Detect some errors and attempt to recover when a
';' is seen.

Attempt to remind the writer for missing ';'s.

TODO: more error recovery should be done
for hidl/errorhal/error/1.0/IEx1.hal

Bug: 31367057 (partly fixes)

Test: mma
Test: `hidl-gen -Lc++ -r tests.errors:system/tools/hidl/test/errorhal -o
~/temp tests.errors.syntax@1.0`
The output has the correct positions marked for the errors.

Change-Id: I858129e08a10cc12a9978adc7fe0c0b94ffbf83e
/system/tools/hidl/hidl-gen_l.ll
bd33e3854555589f312c4d6d89491e2f5cc2f782 02-Nov-2016 Yifan Hong <elsk@google.com> Fix array size orders.

Note that the following code in HIDL:
typedef int32_t[3] ThreeInts;
struct T {
ThreeInts[5] matrix5x3;
int32_t[3][5] matrix3x5;
}

will generate this C++ code:
struct T {
hidl_array<int32_t, 5, 3> matrix5x3; // notice 3 is after 5
hidl_array<int32_t, 3, 5> matrix3x5;
}
and this Java code:
public final static class T {
public final int[][] matrix5x3 = new int[5][3];
public final int[][] matrix3x5 = new int[3][5];
}

Bug: 31438033
Test: hidl_test
Test: hidl_test_java
Change-Id: I3ac91c461293848e6efb3ae8c11a6a8d932ed79a
/system/tools/hidl/hidl-gen_l.ll
cd91bf671bb152c58124eaab9ec3c67429ddc0c3 25-Oct-2016 Hridya Valsaraju <hridya@google.com> Add MQDescriptorUnsync as a predefined HIDL type.

Bug: 31550963
Test: Used MQDescriptorUnsync in
hardware/interfaces/tests/msgq/1.0/ITestMsgQ.hal, built and
ran the FMQ unit tests.

Change-Id: Ib414d9048fbd3f89cfbbe12d11631716f630979e
/system/tools/hidl/hidl-gen_l.ll
8efccec25e4010829fff42d5d953dfb83549d807 06-Oct-2016 Steven Moreland <smoreland@google.com> Remove opaque type from hidl.

Test: make, hidl_test, make hardware/interfaces.
Bug: 31798800

Change-Id: I45db5baa81d9afa9b05e32fec1152802328ce9d4
/system/tools/hidl/hidl-gen_l.ll
bf459bcedc2ab1a22a9cc290fbcc0a5462e63690 24-Aug-2016 Yifan Hong <elsk@google.com> Pointer support and embedded types in HIDL.

* Pointers work per transaction. Don't work
across transactions.
* ref<T> in HIDL translates to T const* in C++.
* No Java support.
* Embedded types like ref<vec<vec<int32_t>>>
or vec<ref<T>> is supported. Pointers to
pointers like ref<ref<ref<T>>> is supported.
* Array of pointers and pointer to array supported.
* Pointer inside a union is NOT supported.

Test: `mma`
Test: `make hidl_test && adb sync && adb shell hidl_test`
Note that this only works with a kernel patch.

Bug: 31300815
Bug: 31349114

Change-Id: I15b74ca74a801009cc8bdc7132bd53d0185dbcbf
/system/tools/hidl/hidl-gen_l.ll
b44a6c8ed35bc63fa0e65111c31fa1339325eb41 23-Sep-2016 Yifan Hong <elsk@google.com> Use colon syntax for FQNames for enum values.

example: android.hardware.foo@1.0::IFoo.IFooInternal.FooEnum:ENUM_OK

In constant expressions they are emitted as-is, so the emit code won't
compile.

Also split regex rule 4 into two rules in FQName.cpp, to single out
the case for identifiers.

Test: not tested. This CL require child CLs to work.

Bug: 31682916

Change-Id: Ib376dc8c4a27894f7b0eb6d017d9f69242d25b45
/system/tools/hidl/hidl-gen_l.ll
191c1fe6bfa9b04fd8ca06b298048215a767baf6 13-Sep-2016 Steven Moreland <smoreland@google.com> Ignoring deprecated register only in flex.

Change-Id: If1aa41c3e04c7e4e7b98056568cd3d3890c188ef
/system/tools/hidl/hidl-gen_l.ll
605c421e53027ad3047a62916f9d2c0373de0a35 06-Sep-2016 Steven Moreland <smoreland@google.com> Line numbers now properly counted when there are comments.

Before, yyloc->lines() not called on newlines in comments. This resulted
in syntax errors to be reported at the wrong lines if files contained
comments.

Change-Id: I196142f30e2f6a98d480c4c866ba974066184c65
/system/tools/hidl/hidl-gen_l.ll
1aec397b1fdea7db4120dbe55b6995bb2a9d9138 26-Aug-2016 Andreas Huber <andih@google.com> Adds (C)opyright headers everywhere.

Change-Id: I453af702f80aa4159ef6c3d29d9514b4897adc0a
/system/tools/hidl/hidl-gen_l.ll
39fa71827738f6c1340e4523946fe9bf704eef3a 19-Aug-2016 Andreas Huber <andih@google.com> Improved name lookup in order to allow partial names to refer to external

(imported) packages.

Bug: 30977424
Change-Id: I0a3757d6c3b10229627e2c1d6bc6176f88e13151
/system/tools/hidl/hidl-gen_l.ll
0d0f9a2e0195a8609f1939c35bd8907253b68249 17-Aug-2016 Andreas Huber <andih@google.com> Switch to 'glr' skeleton parser, better diagnostics through location tracking.

Change-Id: I34f510f3bf8d1e6da06de350456bd2804ca236db
Bug: 28679009
/system/tools/hidl/hidl-gen_l.ll
edad10fc2fa1435eb3a19a0ba119eb90c16d91b5 18-Aug-2016 Andreas Huber <andih@google.com> Remove support for "const" in hidl.

Bug: 30453525
Change-Id: Ia146bec538ae44d7987057e90b6c36c85d31ef0a
/system/tools/hidl/hidl-gen_l.ll
bb0346d211957800e60ca2a645a43c66f542fe8e 18-Aug-2016 Andreas Huber <andih@google.com> Merge "'char' is no longer an acceptable hidl type. Use int8_t or uint8_t instead."
3179b22facb8720726e98ae70968df47e2a115d7 18-Aug-2016 Andreas Huber <andih@google.com> 'char' is no longer an acceptable hidl type. Use int8_t or uint8_t instead.

Bug: 30922140
Change-Id: Id21a1e92a5ad6cd38efd6dda3c8bcfe601c63537
/system/tools/hidl/hidl-gen_l.ll
521656973a277bd727a96fa812315daf416668f4 13-Aug-2016 Yifan Hong <elsk@google.com> parsing major operators.

Do not evaluate the expression, but rather only check
for syntatic errors and resolve for precedence.
* only enum_values are parsed.
* annotation parameter values, and array sizes are NOT parsed.
* Unary, binary, and ternary operators supported.
* Assignment operators are NOT considered.
* Cast is NOT supported.
* Pointers are NOT supported.
* Emitted expression doesn't work for Java.

See Ic1f524c604fc72b9d1b7b330b608ff38ce287921 for tests.

Along side with some code for handling float literals
for future use.

Change-Id: I67ff0767a67c66b62e5ddfe75954f94d45ac7793
/system/tools/hidl/hidl-gen_l.ll
639bff877ed39a7605dab30055f7322b9c3df962 13-Aug-2016 Iliyan Malchev <malchev@google.com> hidl-gen: accept oneway methods

b/30843534: oneway methods seem broken

Change-Id: I122fc26b4054eb0952d209e6b8c18d3a2ea446df
Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/tools/hidl/hidl-gen_l.ll
3599d928cbed73ba3e3872c095c2d1f65796c733 09-Aug-2016 Andreas Huber <andih@google.com> Interface methods can now be annotated.

The syntax is a strict subset of what Java supports. The following are valid
annotations:

@Fragile
@LotsOfStuff(single="yes", many={"a", "b", "c"})

An annotation either has no parameters (in which case the name is NOT followed
by parentheses) or is does and what follows the name is a parenthesized list
of name=value pairs, where each value is either a single quoted string literal
or a list of quoted string literals surrounded by curly braces.

Change-Id: I3c51d771b7d55c8d16531286d011f61be700a21c
/system/tools/hidl/hidl-gen_l.ll
fd4afabde8fb9bbdd0021addeb9fbb62428f2c17 03-Aug-2016 Andreas Huber <andih@google.com> RefType is no more, 1) simplify, 2) repeat
/system/tools/hidl/hidl-gen_l.ll
881227d860c59471eee31d39946e96ce2daa35d6 02-Aug-2016 Andreas Huber <andih@google.com> generate C++ interface header, proxy and stub headers and sources.
/system/tools/hidl/hidl-gen_l.ll
006189f29c9e8451859dd6ca6aa933184a57d88a 30-Jul-2016 Andreas Huber <andih@google.com> by popular demand: enum SomeEnum { FIRST, SECOND = 10, THIRD = SECOND + 5, };
/system/tools/hidl/hidl-gen_l.ll
68f24590cda230fb92eac44ed0247f54f9b31ad0 29-Jul-2016 Andreas Huber <andih@google.com> better error-handling, importing entire packages. Cache now keyed by FQName
/system/tools/hidl/hidl-gen_l.ll
da51b8e0dd17a0edcb5c3e72beb65d45ef0ce8b0 29-Jul-2016 Andreas Huber <andih@google.com> No more "version" keyword, new syntax is "package foo.bar.baz@3.4;"
/system/tools/hidl/hidl-gen_l.ll
84f89de8395a78577f80db0f860b61a9f2409294 29-Jul-2016 Andreas Huber <andih@google.com> major revamp, fully qualified names (FQName) used throughout lexer/parser.
/system/tools/hidl/hidl-gen_l.ll
c9410c7e62a33fd7599b2f3e025093a2d171577e 28-Jul-2016 Andreas Huber <andih@google.com> initial commit of reimplementation of hidl-gen

commit 56da787631c17276bc987f19649c6c1ea92200c3
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 12:18:57 2016 -0700

ast.cpp => AST.cpp

commit 095552aba072152d9c87475895cd2e97c43b7b03
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 10:43:04 2016 -0700

TypeContainer => Scope, since it now also holds constants.

commit 89ec1c511e7806037a53e43333c37fdf1b7aa39e
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 10:41:05 2016 -0700

initial support for constants

commit b60b7ae588654b634bfdc5c283a25dd6378e1df7
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 10:01:46 2016 -0700

Support for typedef, maintain ordering inside TypeContainer

commit 8e83034a077ce2309deeb0e2094079cf6f11d8b4
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 09:36:29 2016 -0700

support for optional super interface

commit 9d44b022adb4a68dfca67ba2a6d845b7c8f27b88
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 09:28:18 2016 -0700

ast => AST

commit 48fd7f8a4e8ecf230cfc416aec6c8f6115e410af
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 09:26:44 2016 -0700

Each type in its own source/header file pair.

commit ca1285ecbcbbb1340eec476e3fd4d1334908d8c1
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 08:52:24 2016 -0700

added scalar types "char", "bool" and "opaque"

commit fbb351e5f4392fcbbce77402dfe059a1c8d79fb2
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 27 13:47:32 2016 -0700

some fixes to the parser and ast.

commit 78288216b101349e9364c2d4470ecb5b9a942f5c
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 27 12:34:21 2016 -0700

Formatter, AST::dump(), NamedType

commit 4b8cc5d0a8ff5f70cb53e21b56138124259b8bcb
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 27 11:45:10 2016 -0700

revamp of the parser, scoped type containers

commit 0193fbfa5c7ac3ac1ce306dfb9c55d879f8c02b5
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 27 10:13:35 2016 -0700

store output in AST.

commit 7f53022123978cc7c2a05b0c4aba7a4c5deea93b
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 27 10:06:54 2016 -0700

reentrant lexer/parser

commit 3d3e343d6cea2fb127b203071e8aff08a5715011
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 26 15:27:02 2016 -0700

better typename lookup, comments.

commit 39f13ae860dbd9ffd163a5c99f150170525457ef
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 26 14:29:33 2016 -0700

an actual AST.

commit b1f3f1d94a8d1257426da35ace5bc2af04c433b6
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 26 12:51:34 2016 -0700

initial commit

Change-Id: I44d1d928a5f3dcb908e264d53af09bbe25d8c464
/system/tools/hidl/hidl-gen_l.ll