Skip to content

Instantly share code, notes, and snippets.

@pehrlich
Created October 16, 2012 01:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pehrlich/3896867 to your computer and use it in GitHub Desktop.
Save pehrlich/3896867 to your computer and use it in GitHub Desktop.
verbose mirah copmlication of bike.mirag (LeJos)
~/Projects/LeJos/bike mirahc --verbose --java --classpath /Users/peter/Downloads/leJOS_NXJ_0.9.1beta-3/lib/nxt/classes.jar test.mirah
Parsing...
test.mirah
Inferring types...
* [AST] [Import] Import(* = lejos.nxt.*) resolved!
* [AST] [Import] Import(GyroSensor = lejos.nxt.addon.GyroSensor) resolved!
* [AST] [Import] Import(GyroDirectionFinder = lejos.nxt.addon.GyroDirectionFinder) resolved!
* [Mirah::Typer] New type defined: 'MyButtonListener' < ''
* [AST] [Implements] Implements resolved!
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0x171ccb0> : b = Type(lejos.nxt.Button)
* [AST] [RequiredArgument] RequiredArgument(b) resolved!
* [AST] [Arguments] Arguments resolved!
* [AST] [String] String("ESC pressed") resolved!
* [AST] [Fixnum] Fixnum(0) resolved!
* [AST] [Fixnum] Fixnum(6) resolved!
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Deferring inference for Call(drawString)
* [Mirah::Typer] Learned method buttonPressed ([#<Mirah::JVM::Types::Type lejos.nxt.Button>]) on Type(MyButtonListener) = Type(void)
* [Mirah::Typer] Deferring inference for MethodDefinition(buttonPressed)
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0x7e425258> : b = Type(lejos.nxt.Button)
* [AST] [RequiredArgument] RequiredArgument(b) resolved!
* [AST] [Arguments] Arguments resolved!
* [AST] [String] String("ESC released") resolved!
* [AST] [Fixnum] Fixnum(0) resolved!
* [AST] [Fixnum] Fixnum(6) resolved!
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Deferring inference for Call(drawString)
* [Mirah::Typer] Learned method buttonReleased ([#<Mirah::JVM::Types::Type lejos.nxt.Button>]) on Type(MyButtonListener) = Type(void)
* [Mirah::Typer] Deferring inference for MethodDefinition(buttonReleased)
* [Mirah::Typer] Deferring inference for Body
* [Mirah::Typer] Deferring inference for Body
* [AST] [ClassDefinition] ClassDefinition(MyButtonListener) resolved!
* [Mirah::Typer] New type defined: 'Test' < ''
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0x4b5d7792> : args = Type(java.lang.String array)
* [AST] [RequiredArgument] RequiredArgument(args) resolved!
* [AST] [Arguments] Arguments resolved!
* [Mirah::Typer] Method type for "new" [] on Type(MyButtonListener meta) not found.
* [Mirah::Typer] Deferring inference for Call(new)
* [Mirah::Typer] Deferring inference for LocalAssignment(name = listener, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Method type for "ESCAPE" [] on Type(lejos.nxt.Button meta) not found.
* [Mirah::Typer] Deferring inference for Call(ESCAPE)
* [Mirah::Typer] Deferring inference for Local(name = listener, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for Call(addButtonListener)
* [Mirah::Typer] Method type for "S1" [] on Type(lejos.nxt.SensorPort meta) not found.
* [Mirah::Typer] Deferring inference for Call(S1)
* [Mirah::Typer] Deferring inference for Call(new)
* [Mirah::Typer] Deferring inference for LocalAssignment(name = gyro, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for Local(name = gyro, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for Call(new)
* [Mirah::Typer] Deferring inference for LocalAssignment(name = gyroBoss, scope = StaticMethodDefinition(main), captured = false)
* [AST] [String] String("calibrating gryo") resolved!
* [AST] [Fixnum] Fixnum(0) resolved!
* [AST] [Fixnum] Fixnum(3) resolved!
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Deferring inference for Call(drawString)
* [Mirah::Typer] Deferring inference for Local(name = gyro, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for Call(recalibrateOffset)
* [AST] [String] String("done! ") resolved!
* [AST] [Fixnum] Fixnum(0) resolved!
* [AST] [Fixnum] Fixnum(3) resolved!
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Deferring inference for Call(drawString)
* [Mirah::Typer] Method type for "currentTimeMillis" [] on Type(java.lang.System meta) not found.
* [Mirah::Typer] Deferring inference for Call(currentTimeMillis)
* [Mirah::Typer] Deferring inference for LocalAssignment(name = time1, scope = StaticMethodDefinition(main), captured = false)
* [AST] [Boolean] Boolean(true) resolved!
* [AST] [Condition] Condition resolved!
* [Mirah::Typer] Deferring inference for Local(name = gyroBoss, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for Call(getDegrees)
* [Mirah::Typer] Deferring inference for LocalAssignment(name = degrees, scope = StaticMethodDefinition(main), captured = false)
* [AST] [String] String("angle: ") resolved!
* [Mirah::Typer] Deferring inference for Local(name = degrees, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for Call(valueOf)
* [AST] [String] String("° ") resolved!
* [AST] [Fixnum] Fixnum(0) resolved!
* [AST] [Fixnum] Fixnum(3) resolved!
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Deferring inference for Call(drawString)
* [Mirah::Typer] Method type for "A" [] on Type(lejos.nxt.Motor meta) not found.
* [Mirah::Typer] Deferring inference for Call(A)
* [Mirah::Typer] Deferring inference for Local(name = degrees, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for FunctionalCall(int)
* [Mirah::Typer] Deferring inference for Call(rotateTo)
* [Mirah::Typer] Method type for "currentTimeMillis" [] on Type(java.lang.System meta) not found.
* [Mirah::Typer] Deferring inference for Call(currentTimeMillis)
* [Mirah::Typer] Deferring inference for LocalAssignment(name = time2, scope = StaticMethodDefinition(main), captured = false)
* [AST] [String] String("refresh: ") resolved!
* [Mirah::Typer] Deferring inference for Local(name = time2, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for Local(name = time1, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for Call(-)
* [Mirah::Typer] Deferring inference for Call(valueOf)
* [AST] [String] String("ms ") resolved!
* [AST] [Fixnum] Fixnum(0) resolved!
* [AST] [Fixnum] Fixnum(7) resolved!
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Deferring inference for Call(drawString)
* [Mirah::Typer] Deferring inference for Local(name = time2, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for LocalAssignment(name = time1, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] Deferring inference for Body
* [Mirah::Typer] Deferring inference for Loop(check_first = true, negative = false)
* [Mirah::Typer] Deferring inference for Body
* [Mirah::Typer] Learned method main ([#<Mirah::JVM::Types::ArrayType java.lang.String>]) on Type(Test meta) = Type(void)
* [Mirah::Typer] Deferring inference for StaticMethodDefinition(main)
* [Mirah::Typer] Deferring inference for Body
* [AST] [ClassDefinition] ClassDefinition(Test) resolved!
* [AST] [Body] Body resolved!
* [AST] [Script] Script resolved!
* [Mirah::Typer] Entering type inference cycle
* [Mirah::Typer] [Cycle 0]: Started... (47 nodes to resolve)
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method lejos.nxt.LCD.drawString(java.lang.String, int, int) from lejos.nxt.LCD
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) = Type(void)
* [AST] [Call] Call(drawString) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(drawString): Type(lejos.nxt.LCD meta)
* [Mirah::Typer] Learned method buttonPressed ([#<Mirah::JVM::Types::Type lejos.nxt.Button>]) on Type(MyButtonListener) = Type(void)
* [AST] [MethodDefinition] MethodDefinition(buttonPressed) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for MethodDefinition(buttonPressed): Type(void)
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method lejos.nxt.LCD.drawString(java.lang.String, int, int) from lejos.nxt.LCD
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) = Type(void)
* [AST] [Call] Call(drawString) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(drawString): Type(lejos.nxt.LCD meta)
* [Mirah::Typer] Learned method buttonReleased ([#<Mirah::JVM::Types::Type lejos.nxt.Button>]) on Type(MyButtonListener) = Type(void)
* [AST] [MethodDefinition] MethodDefinition(buttonReleased) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for MethodDefinition(buttonReleased): Type(void)
* [AST] [Body] Body resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Body: Type(void)
* [AST] [Body] Body resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Body: Type(void)
* [Mirah::Typer] Method type for "new" [] on Type(MyButtonListener meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for MyButtonListener.<init>()
* [JVM::Types] Beginning JLS phase 1 search with params ([])
* [JVM::Types] Attempting static field lookup for '<init>' on class Type(MyButtonListener meta)
* [JVM::Types] Attempting inner class lookup for '<init>' on Type(MyButtonListener meta)
* [JVM::Types] Failed to locate method MyButtonListener.<init>()
* [Mirah::Typer] Deferring inference for Call(new)
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(new): FAILED
* [Mirah::Typer] Method type for "new" [] on Type(MyButtonListener meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for MyButtonListener.<init>()
* [JVM::Types] Beginning JLS phase 1 search with params ([])
* [JVM::Types] Attempting static field lookup for '<init>' on class Type(MyButtonListener meta)
* [JVM::Types] Attempting inner class lookup for '<init>' on Type(MyButtonListener meta)
* [JVM::Types] Failed to locate method MyButtonListener.<init>()
* [Mirah::Typer] Deferring inference for LocalAssignment(name = listener, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] [Cycle 0]: Inferred type for LocalAssignment(name = listener, scope = StaticMethodDefinition(main), captured = false): FAILED
* [Mirah::Typer] Method type for "ESCAPE" [] on Type(lejos.nxt.Button meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for lejos.nxt.Button.ESCAPE()
* [JVM::Types] Beginning JLS phase 1 search with params ([])
* [JVM::Types] Attempting static field lookup for 'ESCAPE' on class Type(lejos.nxt.Button meta)
* [JVM::Types] Found method lejos.nxt.Button.ESCAPE() from lejos.nxt.Button
* [Mirah::Typer] Method type for "ESCAPE" [] on Type(lejos.nxt.Button meta) = Type(lejos.nxt.Button)
* [AST] [Call] Call(ESCAPE) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(ESCAPE): Type(lejos.nxt.Button)
* [Mirah::Typer] Deferring inference for Local(name = listener, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] [Cycle 0]: Inferred type for Local(name = listener, scope = StaticMethodDefinition(main), captured = false): FAILED
* [Mirah::Typer] Deferring inference for Call(addButtonListener)
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(addButtonListener): FAILED
* [Mirah::Typer] Method type for "S1" [] on Type(lejos.nxt.SensorPort meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for lejos.nxt.SensorPort.S1()
* [JVM::Types] Beginning JLS phase 1 search with params ([])
* [JVM::Types] Attempting static field lookup for 'S1' on class Type(lejos.nxt.SensorPort meta)
* [JVM::Types] Found method lejos.nxt.SensorPort.S1() from lejos.nxt.SensorPort
* [Mirah::Typer] Method type for "S1" [] on Type(lejos.nxt.SensorPort meta) = Type(lejos.nxt.SensorPort)
* [AST] [Call] Call(S1) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(S1): Type(lejos.nxt.SensorPort)
* [Mirah::Typer] Method type for "new" [#<Mirah::JVM::Types::Type lejos.nxt.SensorPort>] on Type(lejos.nxt.addon.GyroSensor meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for lejos.nxt.addon.GyroSensor.<init>(lejos.nxt.SensorPort)
* [JVM::Types] Beginning JLS phase 1 search with params (["lejos.nxt.SensorPort"])
* [JVM::Types] Found method lejos.nxt.addon.GyroSensor.<init>(lejos.nxt.ADSensorPort) from lejos.nxt.addon.GyroSensor
* [Mirah::Typer] Method type for "new" [#<Mirah::JVM::Types::Type lejos.nxt.SensorPort>] on Type(lejos.nxt.addon.GyroSensor meta) = Type(lejos.nxt.addon.GyroSensor meta)
* [AST] [Call] Call(new) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(new): Type(lejos.nxt.addon.GyroSensor)
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0x4b5d7792> : gyro = Type(lejos.nxt.addon.GyroSensor)
* [AST] [LocalAssignment] LocalAssignment(name = gyro, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for LocalAssignment(name = gyro, scope = StaticMethodDefinition(main), captured = false): Type(lejos.nxt.addon.GyroSensor)
* [Mirah::Typer] Retrieved local type in #<Mirah::AST::StaticScope:0x4b5d7792> : gyro = Type(lejos.nxt.addon.GyroSensor)
* [AST] [Local] Local(name = gyro, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Local(name = gyro, scope = StaticMethodDefinition(main), captured = false): Type(lejos.nxt.addon.GyroSensor)
* [Mirah::Typer] Method type for "new" [#<Mirah::JVM::Types::Type lejos.nxt.addon.GyroSensor>] on Type(lejos.nxt.addon.GyroDirectionFinder meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for lejos.nxt.addon.GyroDirectionFinder.<init>(lejos.nxt.addon.GyroSensor)
* [JVM::Types] Beginning JLS phase 1 search with params (["lejos.nxt.addon.GyroSensor"])
* [JVM::Types] Found method lejos.nxt.addon.GyroDirectionFinder.<init>(lejos.robotics.Gyroscope) from lejos.nxt.addon.GyroDirectionFinder
* [Mirah::Typer] Method type for "new" [#<Mirah::JVM::Types::Type lejos.nxt.addon.GyroSensor>] on Type(lejos.nxt.addon.GyroDirectionFinder meta) = Type(lejos.nxt.addon.GyroDirectionFinder meta)
* [AST] [Call] Call(new) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(new): Type(lejos.nxt.addon.GyroDirectionFinder)
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0x4b5d7792> : gyroBoss = Type(lejos.nxt.addon.GyroDirectionFinder)
* [AST] [LocalAssignment] LocalAssignment(name = gyroBoss, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for LocalAssignment(name = gyroBoss, scope = StaticMethodDefinition(main), captured = false): Type(lejos.nxt.addon.GyroDirectionFinder)
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method lejos.nxt.LCD.drawString(java.lang.String, int, int) from lejos.nxt.LCD
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) = Type(void)
* [AST] [Call] Call(drawString) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(drawString): Type(lejos.nxt.LCD meta)
* [Mirah::Typer] Retrieved local type in #<Mirah::AST::StaticScope:0x4b5d7792> : gyro = Type(lejos.nxt.addon.GyroSensor)
* [AST] [Local] Local(name = gyro, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Local(name = gyro, scope = StaticMethodDefinition(main), captured = false): Type(lejos.nxt.addon.GyroSensor)
* [Mirah::Typer] Method type for "recalibrateOffset" [] on Type(lejos.nxt.addon.GyroSensor) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method lejos.nxt.addon.GyroSensor.recalibrateOffset() from lejos.nxt.addon.GyroSensor
* [Mirah::Typer] Method type for "recalibrateOffset" [] on Type(lejos.nxt.addon.GyroSensor) = Type(void)
* [AST] [Call] Call(recalibrateOffset) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(recalibrateOffset): Type(lejos.nxt.addon.GyroSensor)
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method lejos.nxt.LCD.drawString(java.lang.String, int, int) from lejos.nxt.LCD
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) = Type(void)
* [AST] [Call] Call(drawString) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(drawString): Type(lejos.nxt.LCD meta)
* [Mirah::Typer] Method type for "currentTimeMillis" [] on Type(java.lang.System meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method java.lang.System.currentTimeMillis() from java.lang.System
* [Mirah::Typer] Method type for "currentTimeMillis" [] on Type(java.lang.System meta) = Type(long)
* [AST] [Call] Call(currentTimeMillis) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(currentTimeMillis): Type(long)
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0x4b5d7792> : time1 = Type(long)
* [AST] [LocalAssignment] LocalAssignment(name = time1, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for LocalAssignment(name = time1, scope = StaticMethodDefinition(main), captured = false): Type(long)
* [Mirah::Typer] Retrieved local type in #<Mirah::AST::StaticScope:0x4b5d7792> : gyroBoss = Type(lejos.nxt.addon.GyroDirectionFinder)
* [AST] [Local] Local(name = gyroBoss, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Local(name = gyroBoss, scope = StaticMethodDefinition(main), captured = false): Type(lejos.nxt.addon.GyroDirectionFinder)
* [Mirah::Typer] Method type for "getDegrees" [] on Type(lejos.nxt.addon.GyroDirectionFinder) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method lejos.nxt.addon.GyroDirectionFinder.getDegrees() from lejos.nxt.addon.GyroDirectionFinder
* [Mirah::Typer] Method type for "getDegrees" [] on Type(lejos.nxt.addon.GyroDirectionFinder) = Type(float)
* [AST] [Call] Call(getDegrees) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(getDegrees): Type(float)
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0x4b5d7792> : degrees = Type(float)
* [AST] [LocalAssignment] LocalAssignment(name = degrees, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for LocalAssignment(name = degrees, scope = StaticMethodDefinition(main), captured = false): Type(float)
* [Mirah::Typer] Retrieved local type in #<Mirah::AST::StaticScope:0x4b5d7792> : degrees = Type(float)
* [AST] [Local] Local(name = degrees, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Local(name = degrees, scope = StaticMethodDefinition(main), captured = false): Type(float)
* [Mirah::Typer] Method type for "valueOf" [#<Mirah::JVM::Types::FloatType float>] on Type(java.lang.String meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method java.lang.String.valueOf(float) from java.lang.String
* [Mirah::Typer] Method type for "valueOf" [#<Mirah::JVM::Types::FloatType float>] on Type(java.lang.String meta) = Type(java.lang.String)
* [AST] [Call] Call(valueOf) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(valueOf): Type(java.lang.String)
* [AST] [ToString] ToString resolved!
* [AST] [StringConcat] StringConcat resolved!
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method lejos.nxt.LCD.drawString(java.lang.String, int, int) from lejos.nxt.LCD
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) = Type(void)
* [AST] [Call] Call(drawString) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(drawString): Type(lejos.nxt.LCD meta)
* [Mirah::Typer] Method type for "A" [] on Type(lejos.nxt.Motor meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for lejos.nxt.Motor.A()
* [JVM::Types] Beginning JLS phase 1 search with params ([])
* [JVM::Types] Attempting static field lookup for 'A' on class Type(lejos.nxt.Motor meta)
* [JVM::Types] Found method lejos.nxt.Motor.A() from lejos.nxt.Motor
* [Mirah::Typer] Method type for "A" [] on Type(lejos.nxt.Motor meta) = Type(lejos.nxt.NXTRegulatedMotor)
* [AST] [Call] Call(A) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(A): Type(lejos.nxt.NXTRegulatedMotor)
* [Mirah::Typer] Retrieved local type in #<Mirah::AST::StaticScope:0x4b5d7792> : degrees = Type(float)
* [AST] [Local] Local(name = degrees, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Local(name = degrees, scope = StaticMethodDefinition(main), captured = false): Type(float)
* [AST] [FunctionalCall] FunctionalCall(int) resolved!
* [AST] [FunctionalCall] FunctionalCall(int) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for FunctionalCall(int): Type(int)
* [Mirah::Typer] Method type for "rotateTo" [#<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.NXTRegulatedMotor) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method lejos.nxt.NXTRegulatedMotor.rotateTo(int) from lejos.nxt.NXTRegulatedMotor
* [Mirah::Typer] Method type for "rotateTo" [#<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.NXTRegulatedMotor) = Type(void)
* [AST] [Call] Call(rotateTo) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(rotateTo): Type(lejos.nxt.NXTRegulatedMotor)
* [Mirah::Typer] Method type for "currentTimeMillis" [] on Type(java.lang.System meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method java.lang.System.currentTimeMillis() from java.lang.System
* [Mirah::Typer] Method type for "currentTimeMillis" [] on Type(java.lang.System meta) = Type(long)
* [AST] [Call] Call(currentTimeMillis) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(currentTimeMillis): Type(long)
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0x4b5d7792> : time2 = Type(long)
* [AST] [LocalAssignment] LocalAssignment(name = time2, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for LocalAssignment(name = time2, scope = StaticMethodDefinition(main), captured = false): Type(long)
* [Mirah::Typer] Retrieved local type in #<Mirah::AST::StaticScope:0x4b5d7792> : time2 = Type(long)
* [AST] [Local] Local(name = time2, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Local(name = time2, scope = StaticMethodDefinition(main), captured = false): Type(long)
* [Mirah::Typer] Retrieved local type in #<Mirah::AST::StaticScope:0x4b5d7792> : time1 = Type(long)
* [AST] [Local] Local(name = time1, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Local(name = time1, scope = StaticMethodDefinition(main), captured = false): Type(long)
* [Mirah::Typer] Method type for "-" [#<Mirah::JVM::Types::LongType long>] on Type(long) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method long.-(long) from long
* [Mirah::Typer] Method type for "-" [#<Mirah::JVM::Types::LongType long>] on Type(long) = Type(long)
* [AST] [Call] Call(-) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(-): Type(long)
* [Mirah::Typer] Method type for "valueOf" [#<Mirah::JVM::Types::LongType long>] on Type(java.lang.String meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method java.lang.String.valueOf(long) from java.lang.String
* [Mirah::Typer] Method type for "valueOf" [#<Mirah::JVM::Types::LongType long>] on Type(java.lang.String meta) = Type(java.lang.String)
* [AST] [Call] Call(valueOf) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(valueOf): Type(java.lang.String)
* [AST] [ToString] ToString resolved!
* [AST] [StringConcat] StringConcat resolved!
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] Found method lejos.nxt.LCD.drawString(java.lang.String, int, int) from lejos.nxt.LCD
* [Mirah::Typer] Method type for "drawString" [#<Mirah::JVM::Types::StringType java.lang.String>, #<Mirah::JVM::Types::IntegerType int>, #<Mirah::JVM::Types::IntegerType int>] on Type(lejos.nxt.LCD meta) = Type(void)
* [AST] [Call] Call(drawString) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Call(drawString): Type(lejos.nxt.LCD meta)
* [Mirah::Typer] Retrieved local type in #<Mirah::AST::StaticScope:0x4b5d7792> : time2 = Type(long)
* [AST] [Local] Local(name = time2, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Local(name = time2, scope = StaticMethodDefinition(main), captured = false): Type(long)
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0x4b5d7792> : time1 = Type(long)
* [AST] [LocalAssignment] LocalAssignment(name = time1, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for LocalAssignment(name = time1, scope = StaticMethodDefinition(main), captured = false): Type(long)
* [AST] [Body] Body resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Body: Type(long)
* [AST] [Loop] Loop(check_first = true, negative = false) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Loop(check_first = true, negative = false): Type(null)
* [Mirah::Typer] Method type for "new" [] on Type(MyButtonListener meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for MyButtonListener.<init>()
* [JVM::Types] Beginning JLS phase 1 search with params ([])
* [JVM::Types] Attempting static field lookup for '<init>' on class Type(MyButtonListener meta)
* [JVM::Types] Attempting inner class lookup for '<init>' on Type(MyButtonListener meta)
* [JVM::Types] Failed to locate method MyButtonListener.<init>()
* [AST] [Body] Body resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Body: Type(null)
* [Mirah::Typer] Learned method main ([#<Mirah::JVM::Types::ArrayType java.lang.String>]) on Type(Test meta) = Type(void)
* [AST] [StaticMethodDefinition] StaticMethodDefinition(main) resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for StaticMethodDefinition(main): Type(void)
* [AST] [Body] Body resolved!
* [Mirah::Typer] [Cycle 0]: Inferred type for Body: Type(void)
* [Mirah::Typer] [Cycle 0]: Complete!
* [Mirah::Typer] [Cycle 1]: Started... (4 nodes to resolve)
* [Mirah::Typer] Method type for "new" [] on Type(MyButtonListener meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for MyButtonListener.<init>()
* [JVM::Types] Beginning JLS phase 1 search with params ([])
* [JVM::Types] Attempting static field lookup for '<init>' on class Type(MyButtonListener meta)
* [JVM::Types] Attempting inner class lookup for '<init>' on Type(MyButtonListener meta)
* [JVM::Types] Failed to locate method MyButtonListener.<init>()
* [Mirah::Typer] Deferring inference for Call(new)
* [Mirah::Typer] [Cycle 1]: Inferred type for Call(new): FAILED
* [Mirah::Typer] Method type for "new" [] on Type(MyButtonListener meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for MyButtonListener.<init>()
* [JVM::Types] Beginning JLS phase 1 search with params ([])
* [JVM::Types] Attempting static field lookup for '<init>' on class Type(MyButtonListener meta)
* [JVM::Types] Attempting inner class lookup for '<init>' on Type(MyButtonListener meta)
* [JVM::Types] Failed to locate method MyButtonListener.<init>()
* [Mirah::Typer] Deferring inference for LocalAssignment(name = listener, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] [Cycle 1]: Inferred type for LocalAssignment(name = listener, scope = StaticMethodDefinition(main), captured = false): FAILED
* [Mirah::Typer] Deferring inference for Local(name = listener, scope = StaticMethodDefinition(main), captured = false)
* [Mirah::Typer] [Cycle 1]: Inferred type for Local(name = listener, scope = StaticMethodDefinition(main), captured = false): FAILED
* [Mirah::Typer] Deferring inference for Call(addButtonListener)
* [Mirah::Typer] [Cycle 1]: Inferred type for Call(addButtonListener): FAILED
* [Mirah::Typer] Method type for "new" [] on Type(MyButtonListener meta) not found.
* [Mirah::Typer] Invoking plugin: Java
* [JVM::Types] No exact match for MyButtonListener.<init>()
* [JVM::Types] Beginning JLS phase 1 search with params ([])
* [JVM::Types] Attempting static field lookup for '<init>' on class Type(MyButtonListener meta)
* [JVM::Types] Attempting inner class lookup for '<init>' on Type(MyButtonListener meta)
* [JVM::Types] Failed to locate method MyButtonListener.<init>()
* [Mirah::Typer] Method type for "new" [] on Type(MyButtonListener meta) = Type(MyButtonListener meta)
* [AST] [Call] Call(new) resolved!
* [Mirah::Typer] [Cycle 1]: Inferred type for Call(new): Type(MyButtonListener)
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0x4b5d7792> : listener = Type(MyButtonListener)
* [AST] [LocalAssignment] LocalAssignment(name = listener, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 1]: Inferred type for LocalAssignment(name = listener, scope = StaticMethodDefinition(main), captured = false): Type(MyButtonListener)
* [Mirah::Typer] Retrieved local type in #<Mirah::AST::StaticScope:0x4b5d7792> : listener = Type(MyButtonListener)
* [AST] [Local] Local(name = listener, scope = StaticMethodDefinition(main), captured = false) resolved!
* [Mirah::Typer] [Cycle 1]: Inferred type for Local(name = listener, scope = StaticMethodDefinition(main), captured = false): Type(MyButtonListener)
* [Mirah::Typer] Method type for "addButtonListener" [#<Mirah::JVM::Types::TypeDefinition MyButtonListener>] on Type(lejos.nxt.Button) not found.
* [Mirah::Typer] Invoking plugin: Java
* [Mirah::Typer] [Cycle 1]: Complete!
[Script
body:
Body
Import(* = lejos.nxt.*)
Import(GyroSensor = lejos.nxt.addon.GyroSensor)
Import(GyroDirectionFinder = lejos.nxt.addon.GyroDirectionFinder)
ClassDefinition(MyButtonListener)
body:
Body
Body
Implements
Constant(ButtonListener)
MethodDefinition(buttonPressed)
signature:
{:return=>#<Mirah::JVM::Types::VoidType void>, :b=>#<Mirah::JVM::Types::Type lejos.nxt.Button>}
arguments:
Arguments
required:
RequiredArgument(b)
type_node:
(wrong parent)
Constant(Button)
body:
Call(drawString)
target:
Constant(LCD)
parameters:
String("ESC pressed")
Fixnum(0)
Fixnum(6)
MethodDefinition(buttonReleased)
signature:
{:return=>#<Mirah::JVM::Types::VoidType void>, :b=>#<Mirah::JVM::Types::Type lejos.nxt.Button>}
arguments:
Arguments
required:
RequiredArgument(b)
type_node:
(wrong parent)
Constant(Button)
body:
Call(drawString)
target:
Constant(LCD)
parameters:
String("ESC released")
Fixnum(0)
Fixnum(6)
ClassDefinition(Test)
body:
Body
StaticMethodDefinition(main)
{:return=>#<Mirah::JVM::Types::VoidType void>, :args=>#<Mirah::JVM::Types::ArrayType java.lang.String>}
Arguments
required:
RequiredArgument(args)
type_node:
(wrong parent)
Constant(String)
Body
LocalAssignment(name = listener, scope = StaticMethodDefinition(main), captured = false)
value:
Call(new)
target:
Constant(MyButtonListener)
parameters:
Call(addButtonListener)
target:
Call(ESCAPE)
target:
Constant(Button)
parameters:
parameters:
Local(name = listener, scope = StaticMethodDefinition(main), captured = false)
LocalAssignment(name = gyro, scope = StaticMethodDefinition(main), captured = false)
value:
Call(new)
target:
Constant(GyroSensor)
parameters:
Call(S1)
target:
Constant(SensorPort)
parameters:
LocalAssignment(name = gyroBoss, scope = StaticMethodDefinition(main), captured = false)
value:
Call(new)
target:
Constant(GyroDirectionFinder)
parameters:
Local(name = gyro, scope = StaticMethodDefinition(main), captured = false)
Call(drawString)
target:
Constant(LCD)
parameters:
String("calibrating gryo")
Fixnum(0)
Fixnum(3)
Call(recalibrateOffset)
target:
Local(name = gyro, scope = StaticMethodDefinition(main), captured = false)
parameters:
Call(drawString)
target:
Constant(LCD)
parameters:
String("done! ")
Fixnum(0)
Fixnum(3)
LocalAssignment(name = time1, scope = StaticMethodDefinition(main), captured = false)
value:
Call(currentTimeMillis)
target:
Constant(System)
parameters:
Loop(check_first = true, negative = false)
init:
Body
condition:
Condition
predicate:
Boolean(true)
pre:
Body
body:
Body
LocalAssignment(name = degrees, scope = StaticMethodDefinition(main), captured = false)
value:
Call(getDegrees)
target:
Local(name = gyroBoss, scope = StaticMethodDefinition(main), captured = false)
parameters:
Call(drawString)
target:
Constant(LCD)
parameters:
StringConcat
String("angle: ")
ToString
body:
Call(valueOf)
target:
Constant(String)
parameters:
Local(name = degrees, scope = StaticMethodDefinition(main), captured = false)
String("° ")
Fixnum(0)
Fixnum(3)
Call(rotateTo)
target:
Call(A)
target:
Constant(Motor)
parameters:
parameters:
FunctionalCall(int)
parameters:
Local(name = degrees, scope = StaticMethodDefinition(main), captured = false)
LocalAssignment(name = time2, scope = StaticMethodDefinition(main), captured = false)
value:
Call(currentTimeMillis)
target:
Constant(System)
parameters:
Call(drawString)
target:
Constant(LCD)
parameters:
StringConcat
String("refresh: ")
ToString
body:
Call(valueOf)
target:
Constant(String)
parameters:
Call(-)
target:
Local(name = time2, scope = StaticMethodDefinition(main), captured = false)
parameters:
Local(name = time1, scope = StaticMethodDefinition(main), captured = false)
String("ms ")
Fixnum(0)
Fixnum(7)
LocalAssignment(name = time1, scope = StaticMethodDefinition(main), captured = false)
value:
Local(name = time2, scope = StaticMethodDefinition(main), captured = false)
post:
Body]
test.mirah:32: can't convert Mirah::JVM::Types::TypeDefinition into String
Button.ESCAPE.addButtonListener(listener)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: can't convert Mirah::JVM::Types::TypeDefinition into String
join at org/jruby/RubyArray.java:1871
java_method at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/jvm/types/methods.rb:447
find_method at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/jvm/method_lookup.rb:38
get_method at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/jvm/types/methods.rb:394
method_type at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/plugin/java.rb:37
method_type at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/typer/simple.rb:195
plugins at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/typer/simple.rb:215
each at org/jruby/RubyArray.java:1615
plugins at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/typer/simple.rb:212
method_type at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/typer/simple.rb:194
infer at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/ast/call.rb:188
__send__ at org/jruby/RubyBasicObject.java:1710
<Class:0x52ab7af2> at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/util/delegate.rb:23
infer at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/typer/simple.rb:275
resolve at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/typer/simple.rb:324
each at org/jruby/RubyHash.java:1186
resolve at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/typer/simple.rb:322
cycle at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/typer/simple.rb:236
times at org/jruby/RubyFixnum.java:256
cycle at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/typer/simple.rb:233
resolve at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/typer/simple.rb:319
infer_asts at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/generator.rb:49
generate at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/generator.rb:35
execute at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/commands/compile.rb:26
execute_base at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/commands/base.rb:44
catch at org/jruby/RubyKernel.java:1197
execute_base at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/commands/base.rb:42
execute at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah/commands/compile.rb:23
compile at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/lib/mirah.rb:40
(root) at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/bin/mirahc:27
load at org/jruby/RubyKernel.java:1068
at /Users/peter/.rvm/gems/jruby-1.6.7.2/gems/mirah-0.0.12-java/bin/mirahc:19
eval at org/jruby/RubyKernel.java:1088
(root) at /Users/peter/.rvm/gems/jruby-1.6.7.2/bin/ruby_noexec_wrapper:14
import lejos.nxt.*
import lejos.nxt.addon.GyroSensor
import lejos.nxt.addon.GyroDirectionFinder
#http://lejos.sourceforge.net/nxt/pc/api/lejos/nxt/addon/GyroDirectionFinder.html
#class MyButtonListener < ButtonListener
class MyButtonListener
implements ButtonListener
def buttonPressed(b: Button):void
LCD.drawString("ESC pressed", 0, 6)
end
def buttonReleased(b: Button):void
LCD.drawString("ESC released", 0, 6)
end
end
class Test
def self.main(args:String[]):void
#System.out.println "Hello World from Mirah!"
# puts 'ok'
#Motor.A.forward()
#Motor.A.rotateTo(30)
# Motor.A.setSpeed(720)
#Delay.msDelay(2000);
# LCD.drawInt(Motor.A.getTachoCount(),0,3);
# this method appears to be crap
#gyro.recalibrateOffsetAlt
listener = MyButtonListener.new
Button.ESCAPE.addButtonListener(listener)
gyro = GyroSensor.new(SensorPort.S1)
gyroBoss = GyroDirectionFinder.new(gyro)
LCD.drawString 'calibrating gryo', 0, 3
gyro.recalibrateOffset
LCD.drawString 'done! ', 0, 3
time1 = System.currentTimeMillis()
while true
#LCD.drawInt gyro.readValue, 0, 3
#LCD.drawString "#{String.valueOf gyro.getAngularVelocity} ", 0, 3
degrees = gyroBoss.getDegrees
LCD.drawString "angle: #{String.valueOf degrees}° ", 0, 3
Motor.A.rotateTo int degrees
time2 = System.currentTimeMillis()
LCD.drawString "refresh: #{String.valueOf (time2 - time1)}ms ", 0, 7
time1 = time2
end
#Button.waitForAnyPress()
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment