{"action":"closed","issue":{"url":"https://api.github.com/repos/antlr/grammars-v4/issues/152","labels_url":"https://api.github.com/repos/antlr/grammars-v4/issues/152/labels{/name}","comments_url":"https://api.github.com/repos/antlr/grammars-v4/issues/152/comments","events_url":"https://api.github.com/repos/antlr/grammars-v4/issues/152/events","html_url":"https://github.com/antlr/grammars-v4/issues/152","id":69520961,"number":152,"title":"Objective-C grammar creates a very deep tree for a single message-send expression.","user":{"login":"taketo1024","id":1892213,"avatar_url":"https://avatars.githubusercontent.com/u/1892213?v=3","gravatar_id":"","url":"https://api.github.com/users/taketo1024","html_url":"https://github.com/taketo1024","followers_url":"https://api.github.com/users/taketo1024/followers","following_url":"https://api.github.com/users/taketo1024/following{/other_user}","gists_url":"https://api.github.com/users/taketo1024/gists{/gist_id}","starred_url":"https://api.github.com/users/taketo1024/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taketo1024/subscriptions","organizations_url":"https://api.github.com/users/taketo1024/orgs","repos_url":"https://api.github.com/users/taketo1024/repos","events_url":"https://api.github.com/users/taketo1024/events{/privacy}","received_events_url":"https://api.github.com/users/taketo1024/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-04-20T06:49:45Z","updated_at":"2015-04-20T15:26:42Z","closed_at":"2015-04-20T15:26:42Z","body":"Hi, I really love ANTLR, it's a great tool.\r\n\r\nI found that a single message-send statement being parsed into a very deep tree. Obviously, there is no conditional or logical expression in this statement, so I think there is something wrong in the grammar. \r\n\r\n```\r\n[self doSomething];\r\n```\r\n\r\n```\r\n * 9                    expression: '[' - ']'\r\n * 10                      assignment_expression: '[' - ']'\r\n * 11                        conditional_expression: '[' - ']'\r\n * 12                          logical_or_expression: '[' - ']'\r\n * 13                            logical_and_expression: '[' - ']'\r\n * 14                              inclusive_or_expression: '[' - ']'\r\n * 15                                exclusive_or_expression: '[' - ']'\r\n * 16                                  and_expression: '[' - ']'\r\n * 17                                    equality_expression: '[' - ']'\r\n * 18                                      relational_expression: '[' - ']'\r\n * 19                                        shift_expression: '[' - ']'\r\n * 20                                          additive_expression: '[' - ']'\r\n * 21                                            multiplicative_expression: '[' - ']'\r\n * 22                                              cast_expression: '[' - ']'\r\n * 23                                                unary_expression: '[' - ']'\r\n * 24                                                  postfix_expression: '[' - ']'\r\n * 25                                                    primary_expression: '[' - ']'\r\n * 26                                                      message_expression: '[' - ']'\r\n * 27                                                        receiver: 'self'\r\n * 28                                                          expression: 'self'\r\n * 29                                                            assignment_expression: 'self'\r\n * 30                                                              conditional_expression: 'self'\r\n * 31                                                                logical_or_expression: 'self'\r\n * 32                                                                  logical_and_expression: 'self'\r\n * 33                                                                    inclusive_or_expression: 'self'\r\n * 34                                                                      exclusive_or_expression: 'self'\r\n * 35                                                                        and_expression: 'self'\r\n * 36                                                                          equality_expression: 'self'\r\n * 37                                                                            relational_expression: 'self'\r\n * 38                                                                              shift_expression: 'self'\r\n * 39                                                                                additive_expression: 'self'\r\n * 40                                                                                  multiplicative_expression: 'self'\r\n * 41                                                                                    cast_expression: 'self'\r\n * 42                                                                                      unary_expression: 'self'\r\n * 43                                                                                        postfix_expression: 'self'\r\n * 44                                                                                          primary_expression: 'self'\r\n * 27                                                        message_selector: 'doSomething'\r\n * 28                                                          selector: 'doSomething'\r\n```\r\n\r\nThanks."}}