IR element for loop control flow breaks
AST -> IR back references
Seems to be sound in external tests

The bytecode is messy, though. The nasty ASM
nop / athrow frames strike back!
Test for break / continue
Avoid the NOP/ATHROW invalid frames

This typically happens with else branches code, as the GOTO yields dead code for ASM while computing
frames.

A cleaner approach is to be investigated, but meanwhile the JIT should easily understand that the
jump condition is 100% stable given that the comparison happens to be on a constant...
Test to check for incorrect break/continue
Document break and continue
java.util.Stack to java.util.Deque / LinkedList
Travis-CI configuration
README file reformat and Travis-CI status
Reformat
A clarification on the "pimp" etymology
Merge pull request #4 from jponge/wip-break-statement

Break and continue statements
Merge pull request #5 from jponge/wip-ju-stack-cleanup

java.util.Stack to java.util.Deque / LinkedList
File rename
Changing from "pimps" to "class augmentations"

This change is being made to accomodate cultural differences around the world.

The new keyword is 'augment' instead of 'pimp'. The 'pimp' keyword will continue to remain valid in
the parser for some time, although its existence has been removed from the documentation and the
terminology used in the source code.

Signed-off-by: Julien Ponge <julien.ponge@insa-lyon.fr>
Netbeans IDE reference
Fixes a bug in the capture of nested closures

Could such as the following would fail:

    function nested_closures = {
      let s = "plop"
      let f1 = |x| -> x
      let f2 = {
        return {
          return f1(s)
        }
      }
      return f2()
    }

The call to f1 in the definition of f2 would be interpreted as a regular call to some function f1
rather than a call on the closure assigned to reference f1. The call to f2 was correct, though.

The fix involved some more work on the closure capture visitor on the intermediate representation.
Do not propagate regular parameters of closures

The previous commit allowed for the propagation of closure context when nested. This worked a bit
too well as regular closure parameters would be considered as dependencies to be resolved, too,
causing closure references to make lookups on non-existing references in the wrong block.

This commit prevents regular parameters to be propagated. This has been tested on samples with
deeply nested closures.

Squashed commit of the following:

commit 38ab16d2fd9a9fc4a7e11e93f34123e138c8aac0
Author: Julien Ponge <julien.ponge@insa-lyon.fr>
Date:   Wed Apr 10 23:21:26 2013 +0200

    Sounds good

commit c8175fdc75bd50f3eebe26365ef7c3d08bdc2d17
Author: Julien Ponge <julien.ponge@insa-lyon.fr>
Date:   Wed Apr 10 23:18:52 2013 +0200

    Could this be it?

commit c01e34ae1d4e459670ad5cda200c33634334e0a7
Author: Julien Ponge <julien.ponge@insa-lyon.fr>
Date:   Wed Apr 10 22:55:01 2013 +0200

    Seems better....

commit 430d2279df1c20f5159ea7ac6a5dabd5f82db764
Author: Julien Ponge <julien.ponge@insa-lyon.fr>
Date:   Wed Apr 10 16:58:59 2013 +0200

    Traces--

commit 92b3b80629fb5ba21828f53604ed327176322059
Author: Julien Ponge <julien.ponge@insa-lyon.fr>
Date:   Wed Apr 10 16:23:39 2013 +0200

    Adding references is useless

commit 668094cdcbef3532d02f0720e1f5fc2d3095106d
Author: Julien Ponge <julien.ponge@insa-lyon.fr>
Date:   Wed Apr 10 15:36:56 2013 +0200

    A pathological case

commit da071d0777e2dc6a2548ba1d81b969a2c79efee5
Author: Julien Ponge <julien.ponge@insa-lyon.fr>
Date:   Wed Apr 10 14:59:31 2013 +0200

    Debug in progress

commit 1b257eaee7465de2967dd46cb43b323d29bb81aa
Author: Julien Ponge <julien.ponge@insa-lyon.fr>
Date:   Wed Apr 10 13:06:41 2013 +0200

    Bug: parameter names shall not be propagated
Report undeclared reference names