Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] access IBinary file?

Sorry Charley,
Wrong click lead to post question in wrong place...
David


On Tue, Sep 29, 2009 at 6:44 PM, David Sariel <datosar@xxxxxxxxx> wrote:
> Hi Mike,
> Thanks a lot for the answer!
> I have a written a grammar that was received by adding/dropping rules
> in UPC/C99 and the generated parser seems reducing rules correctly.
>
> Now I want to reuse as much as possible the parser action classes
> (C99BuildASTParserAction, BuildASTParserAction, AbstractParserAction)
> in the manner that will cause the
> 1) Syntax highlighting
> 2) Code outline
> 3) Code completion
> to work with the new language (I have the part of keyword highlighting
> already working).
>
> The problem is that the language I’m working with has no declaration
> and type sections that are presented in C99. Bellow are the rules that
> bypass the declaration and type rules as I’ve defined:
>
> 119  172   directive ::= align_directive               (NEW)
> 120  173   directive ::= ds_directive                  (NEW)
> 121  174   directive ::= dcb_directive                (NEW)
> 122  175   directive ::= dcw_directive                (NEW)
> 123  176   directive ::= dcl_directive                 (NEW)
> 124  177   directive ::= list_directive                 (NEW)
> 125  178   directive ::= nolist_directive              (NEW)
> 126  179   directive ::= global_directive             (NEW)
> 127  180   directive ::= const_directive              (NEW)
> 128  181   directive ::= register_directive           (NEW)
> 129  182   directive ::= reserve_directive            (NEW)
> 130  183   directive ::= strict_directive               (NEW)
> 131  184   directive ::= nonstrict_directive         (NEW)
> 132  185   directive ::= sync_directive               (NEW)
> 133  186   directive ::= nosync_directive            (NEW)
> 134  187   directive ::= functioncall_attr             (NEW)
> 135  188   directive ::= func_declarator              (NEW)
> 136  189   directive ::= outofline_directive           (NEW)
> 137  190   directive ::= struct_or_union_specifier (NEW)
> 138  191   directive ::= enum_specifier               (NEW)
>
> 139  93    expression_statement ::= ;
> 140  94    expression_statement ::= expression_in_statement ;
> 141  154   expression_statement ::= directive ;   (NEW)
>
> 158  213   section_definition ::= SectionDirective identifier_token
> compound_statement  (NEW)
>
> 159  79    statement ::= labeled_statement
> 160  80    statement ::= compound_statement
> 161  81    statement ::= expression_statement
> 162  82    statement ::= selection_statement
> 163  83    statement ::= iteration_statement
> 164  84    statement ::= jump_statement
> 165  149   statement ::= include_directive              (NEW)
> 166  150   statement ::= inline_func_definition        (NEW)
> 167  151   statement ::= func_definition                 (NEW)
> 168  152   statement ::= section_definition             (NEW)
> 169  153   statement ::= ERROR_TOKEN
>
> 170  92    block_item ::= statement                       (NEW)
> 171  90    block_item_list ::= block_item
> 172  91    block_item_list ::= block_item_list block_item
>
> 173  211   translation_unit ::= block_item_list
> 174  212   translation_unit ::=
> 175  0     $accept ::= translation_unit
> 176  2     <empty> ::=
>
>
>
> Hence, one of the problems I have is how to override the
> BuildASTParserAction#consumeTranslationUnit method  to add/get
> statements to the TranslationUnit instead of
> addDeclarations/getDeclaration methods (the problem is that
> INodeFactory is annotated by @noextend, @noimplement).
>
> How to overcome this?
> Thank you,
> David
>
>
> On Tue, Sep 15, 2009 at 5:52 PM, Charley Wang <charley.wang@xxxxxxxxx> wrote:
>> Hi,
>>
>> I'm trying to test a plugin and one of the functions I'd like to test needs
>> an IBinary.
>>
>> Within the plugin itself I can use
>>
>> CCorePlugin.getDefault().getCoreModel().create(path).getCProject().getBinaryContainer().getBinaries();
>>
>> to get the binaries, but when executing as a JUnit Plugin-test this results
>> in Null Pointer Exceptions. After some poking around, I know it's the
>> create(path) function that's returning null, and I'm not sure why.
>>
>> Does anybody know why this line works in the regular plugin but not as a
>> plugin test? [And/or does anybody have any suggestions on how to fix this?]
>>
>> Thank you!
>> -Charley
>>
>>
>>
>> _______________________________________________
>> cdt-dev mailing list
>> cdt-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/cdt-dev
>>
>>
>


Back to the top