added IntelliJ Idea files to .gitignore
(cherry picked from commit e49967f)
extracted sourceReadin method
added code for writing .java source files
added temporary build files to ignore list
FIX: new-array instructions do reference to types, not classes
Sample:
"
   new-array v0, v0, [Ljava/lang/String;
"
ADD: introducing .catch instructions to ABNF grammar
Sample:
"
   .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
"
FIX: added missing move-exception instruction to cmdAny definition
Sample:
"
    move-exception v3
"
ADD: also .end local blocks are now parsed but not yet processed/rendered
Sample:
"
    .end local v0           #pre:Ljava/lang/String;
"
FIX: invoking methods can also have no parameters et all
Sample:
"
   invoke-static {}, Lnet/example/AppData;->sampleMethod()V
"
ADD: .local also allows something like .restart, this is the grammar for
Sample:
"
   .restart local v3       #result:Landroid/database/Cursor;
"
ADD: support for class annotations
Sample:
"
   # annotations
   .annotation system Ldalvik/annotation/MemberClasses;
   .end annotation
"
ADD: annotations are allowed to have multiple classifier and values
Sample:
"
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lnet/example/R$array;,
    }
    name = "test"
    id = 0x12
.end annotation
"
ADD: invoking methods not only uses codeRegisterGroups, but also some other grammar - reason is still not clear, but grammar fixed
Sample:
"
   invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
"
FIX: while check-cast can does also refer to type instead of classes
Sample:
"
   check-cast v10, [Ljava/lang/Object;
"
ADD: invoking methods not only uses codeRegisterGroups, but also some other grammar - reason is still not clear, but grammar fixed
Sample:
"
   invoke-direct/range {p0 .. p0}, Lnet/example/monitor;->checkBeforeAction()V
   invoke-static/range {v16 .. v16}, Ljava/lang/Integer;->
"
ADD: methods can contain .packed-switch instructions
Sample:
"
       .packed-switch 0x7f0a0001
           :pswitch_0
           :pswitch_1
       .end packed-switch
"
FIX: string can contain escaped apostrophes
Sample:
"
   const-string v4, "don\'t forget"
"
ADD: also allow catchall instructions
Sample:
"
   .catchall {:try_start_0 .. :try_end_0} :catchall_0
"
FIX: allow dollar sign (%x24) in qualifier names
Sample:
"
   .class Lnet/example/MyActivity$1;
"