gitextract_gohkibfx/ ├── .gitignore ├── LICENSE ├── README.md ├── TODO.md ├── build.py ├── latte-build/ │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src/ │ └── main/ │ ├── java/ │ │ └── lt/ │ │ └── repl/ │ │ ├── CtrlCHandler.java │ │ ├── CtrlCHandlerImpl.java │ │ ├── Entry.java │ │ ├── IO.java │ │ ├── JLineStringReader.java │ │ ├── REPL.java │ │ ├── SimpleStringReader.java │ │ ├── StringReader.java │ │ └── VersionRetriever.java │ └── resources/ │ └── version ├── latte-class-recorder/ │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src/ │ └── main/ │ ├── groovy/ │ │ └── org/ │ │ └── lattelang/ │ │ └── ClassRecorder.groovy │ └── resources/ │ └── META-INF/ │ └── gradle-plugins/ │ └── org.latte-lang.class-recorder.properties ├── latte-compiler/ │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── lt/ │ │ │ ├── compiler/ │ │ │ │ ├── AbstractScanner.java │ │ │ │ ├── BraceScanner.java │ │ │ │ ├── CodeGenerator.java │ │ │ │ ├── CodeInfo.java │ │ │ │ ├── CompileException.java │ │ │ │ ├── CompileUtil.java │ │ │ │ ├── ErrorManager.java │ │ │ │ ├── IndentScanner.java │ │ │ │ ├── LineCol.java │ │ │ │ ├── LtBug.java │ │ │ │ ├── MultipleClassLoader.java │ │ │ │ ├── Parser.java │ │ │ │ ├── Properties.java │ │ │ │ ├── PushLineBackReader.java │ │ │ │ ├── SClassWriter.java │ │ │ │ ├── Scanner.java │ │ │ │ ├── ScannerSwitcher.java │ │ │ │ ├── SemanticProcessor.java │ │ │ │ ├── SemanticScope.java │ │ │ │ ├── SyntaxException.java │ │ │ │ ├── UnexpectedEndException.java │ │ │ │ ├── UnexpectedTokenException.java │ │ │ │ ├── lexical/ │ │ │ │ │ ├── Args.java │ │ │ │ │ ├── Element.java │ │ │ │ │ ├── ElementStartNode.java │ │ │ │ │ ├── EndingNode.java │ │ │ │ │ ├── IllegalIndentationException.java │ │ │ │ │ ├── Indent.java │ │ │ │ │ ├── Node.java │ │ │ │ │ ├── PairEntry.java │ │ │ │ │ └── TokenType.java │ │ │ │ ├── semantic/ │ │ │ │ │ ├── ConstantValue.java │ │ │ │ │ ├── DummyValue.java │ │ │ │ │ ├── ExceptionTable.java │ │ │ │ │ ├── Ins.java │ │ │ │ │ ├── Instruction.java │ │ │ │ │ ├── InvokableMeta.java │ │ │ │ │ ├── LeftValue.java │ │ │ │ │ ├── LocalVariable.java │ │ │ │ │ ├── MethodTypeValue.java │ │ │ │ │ ├── PointerType.java │ │ │ │ │ ├── PrimitiveTypeDef.java │ │ │ │ │ ├── PrimitiveValue.java │ │ │ │ │ ├── ReadOnly.java │ │ │ │ │ ├── SAnno.java │ │ │ │ │ ├── SAnnoDef.java │ │ │ │ │ ├── SAnnoField.java │ │ │ │ │ ├── SAnnotationPresentable.java │ │ │ │ │ ├── SArrayTypeDef.java │ │ │ │ │ ├── SArrayValue.java │ │ │ │ │ ├── SClassDef.java │ │ │ │ │ ├── SConstructorDef.java │ │ │ │ │ ├── SFieldDef.java │ │ │ │ │ ├── SInterfaceDef.java │ │ │ │ │ ├── SInvokable.java │ │ │ │ │ ├── SMember.java │ │ │ │ │ ├── SMethodDef.java │ │ │ │ │ ├── SModifier.java │ │ │ │ │ ├── SParameter.java │ │ │ │ │ ├── SRefTypeDef.java │ │ │ │ │ ├── STypeDef.java │ │ │ │ │ ├── Value.java │ │ │ │ │ ├── ValueAnotherType.java │ │ │ │ │ ├── ValuePack.java │ │ │ │ │ ├── VoidType.java │ │ │ │ │ ├── builtin/ │ │ │ │ │ │ ├── BoolTypeDef.java │ │ │ │ │ │ ├── BoolValue.java │ │ │ │ │ │ ├── ByteTypeDef.java │ │ │ │ │ │ ├── ByteValue.java │ │ │ │ │ │ ├── CharTypeDef.java │ │ │ │ │ │ ├── CharValue.java │ │ │ │ │ │ ├── DoubleTypeDef.java │ │ │ │ │ │ ├── DoubleValue.java │ │ │ │ │ │ ├── EnumValue.java │ │ │ │ │ │ ├── FloatTypeDef.java │ │ │ │ │ │ ├── FloatValue.java │ │ │ │ │ │ ├── IntTypeDef.java │ │ │ │ │ │ ├── IntValue.java │ │ │ │ │ │ ├── LongTypeDef.java │ │ │ │ │ │ ├── LongValue.java │ │ │ │ │ │ ├── NullTypeDef.java │ │ │ │ │ │ ├── NullValue.java │ │ │ │ │ │ ├── ShortTypeDef.java │ │ │ │ │ │ ├── ShortValue.java │ │ │ │ │ │ └── StringConstantValue.java │ │ │ │ │ └── helper/ │ │ │ │ │ ├── ASTGHolder.java │ │ │ │ │ └── HalfAppliedTypes.java │ │ │ │ ├── syntactic/ │ │ │ │ │ ├── AST.java │ │ │ │ │ ├── Definition.java │ │ │ │ │ ├── DuplicateVariableNameException.java │ │ │ │ │ ├── Expression.java │ │ │ │ │ ├── Literal.java │ │ │ │ │ ├── Operation.java │ │ │ │ │ ├── Pre.java │ │ │ │ │ ├── Statement.java │ │ │ │ │ ├── UnexpectedNewLayerException.java │ │ │ │ │ ├── UnknownTokenException.java │ │ │ │ │ ├── def/ │ │ │ │ │ │ ├── AnnotationDef.java │ │ │ │ │ │ ├── ClassDef.java │ │ │ │ │ │ ├── FunDef.java │ │ │ │ │ │ ├── InterfaceDef.java │ │ │ │ │ │ ├── MethodDef.java │ │ │ │ │ │ ├── ObjectDef.java │ │ │ │ │ │ └── VariableDef.java │ │ │ │ │ ├── literal/ │ │ │ │ │ │ ├── BoolLiteral.java │ │ │ │ │ │ ├── NumberLiteral.java │ │ │ │ │ │ └── StringLiteral.java │ │ │ │ │ ├── operation/ │ │ │ │ │ │ ├── OneVariableOperation.java │ │ │ │ │ │ ├── TwoVariableOperation.java │ │ │ │ │ │ └── UnaryOneVariableOperation.java │ │ │ │ │ └── pre/ │ │ │ │ │ ├── Import.java │ │ │ │ │ ├── Modifier.java │ │ │ │ │ └── PackageDeclare.java │ │ │ │ └── util/ │ │ │ │ ├── BindList.java │ │ │ │ ├── Consts.java │ │ │ │ └── LocalVariables.java │ │ │ ├── dependencies/ │ │ │ │ ├── asm/ │ │ │ │ │ ├── AnnotationVisitor.java │ │ │ │ │ ├── AnnotationWriter.java │ │ │ │ │ ├── Attribute.java │ │ │ │ │ ├── ByteVector.java │ │ │ │ │ ├── ClassReader.java │ │ │ │ │ ├── ClassVisitor.java │ │ │ │ │ ├── ClassWriter.java │ │ │ │ │ ├── Context.java │ │ │ │ │ ├── Edge.java │ │ │ │ │ ├── FieldVisitor.java │ │ │ │ │ ├── FieldWriter.java │ │ │ │ │ ├── Frame.java │ │ │ │ │ ├── Handle.java │ │ │ │ │ ├── Handler.java │ │ │ │ │ ├── Item.java │ │ │ │ │ ├── Label.java │ │ │ │ │ ├── MethodVisitor.java │ │ │ │ │ ├── MethodWriter.java │ │ │ │ │ ├── Opcodes.java │ │ │ │ │ ├── Type.java │ │ │ │ │ ├── TypePath.java │ │ │ │ │ ├── TypeReference.java │ │ │ │ │ ├── package.html │ │ │ │ │ └── signature/ │ │ │ │ │ ├── SignatureReader.java │ │ │ │ │ ├── SignatureVisitor.java │ │ │ │ │ ├── SignatureWriter.java │ │ │ │ │ └── package.html │ │ │ │ └── package-info.java │ │ │ ├── generator/ │ │ │ │ ├── AbstractSourceGenerator.java │ │ │ │ └── SourceGenerator.java │ │ │ ├── lang/ │ │ │ │ ├── FunctionalAbstractClass.java │ │ │ │ ├── FunctionalInterface.java │ │ │ │ ├── GenericTemplate.java │ │ │ │ ├── Pointer.java │ │ │ │ ├── Unit.java │ │ │ │ ├── ast.java │ │ │ │ ├── function/ │ │ │ │ │ ├── Function.java │ │ │ │ │ ├── Function0.java │ │ │ │ │ ├── Function1.java │ │ │ │ │ ├── Function10.java │ │ │ │ │ ├── Function11.java │ │ │ │ │ ├── Function12.java │ │ │ │ │ ├── Function13.java │ │ │ │ │ ├── Function14.java │ │ │ │ │ ├── Function15.java │ │ │ │ │ ├── Function16.java │ │ │ │ │ ├── Function17.java │ │ │ │ │ ├── Function18.java │ │ │ │ │ ├── Function19.java │ │ │ │ │ ├── Function2.java │ │ │ │ │ ├── Function20.java │ │ │ │ │ ├── Function21.java │ │ │ │ │ ├── Function22.java │ │ │ │ │ ├── Function23.java │ │ │ │ │ ├── Function24.java │ │ │ │ │ ├── Function25.java │ │ │ │ │ ├── Function26.java │ │ │ │ │ ├── Function3.java │ │ │ │ │ ├── Function4.java │ │ │ │ │ ├── Function5.java │ │ │ │ │ ├── Function6.java │ │ │ │ │ ├── Function7.java │ │ │ │ │ ├── Function8.java │ │ │ │ │ └── Function9.java │ │ │ │ ├── implicit/ │ │ │ │ │ ├── CollectionImplicit.java │ │ │ │ │ ├── ObjectImplicit.java │ │ │ │ │ ├── PrimitivesImplicit.java │ │ │ │ │ ├── RichBool.java │ │ │ │ │ ├── RichByte.java │ │ │ │ │ ├── RichChar.java │ │ │ │ │ ├── RichDouble.java │ │ │ │ │ ├── RichFloat.java │ │ │ │ │ ├── RichInt.java │ │ │ │ │ ├── RichLong.java │ │ │ │ │ ├── RichObject.java │ │ │ │ │ ├── RichShort.java │ │ │ │ │ ├── RichString.java │ │ │ │ │ ├── StringImplicit.java │ │ │ │ │ └── collection/ │ │ │ │ │ ├── RichIterable.java │ │ │ │ │ ├── RichList.java │ │ │ │ │ ├── RichMap.java │ │ │ │ │ └── RichSet.java │ │ │ │ └── js.java │ │ │ ├── repl/ │ │ │ │ ├── ClassPathLoader.java │ │ │ │ ├── Compiler.java │ │ │ │ ├── Evaluator.java │ │ │ │ ├── Run.java │ │ │ │ ├── ScriptCompiler.java │ │ │ │ └── scripting/ │ │ │ │ ├── CL.java │ │ │ │ ├── Config.java │ │ │ │ ├── EvalEntry.java │ │ │ │ ├── LatteContext.java │ │ │ │ ├── LatteEngine.java │ │ │ │ ├── LatteEngineFactory.java │ │ │ │ ├── LatteScope.java │ │ │ │ └── package-info.java │ │ │ ├── runtime/ │ │ │ │ ├── Dynamic.java │ │ │ │ ├── ExceptionContainer.java │ │ │ │ ├── Implicit.java │ │ │ │ ├── ImplicitImports.java │ │ │ │ ├── LambdaGen.java │ │ │ │ ├── LatteFun.java │ │ │ │ ├── LatteObject.java │ │ │ │ ├── LtIterator.java │ │ │ │ ├── LtRuntime.java │ │ │ │ ├── LtRuntimeException.java │ │ │ │ ├── MatchError.java │ │ │ │ ├── StaticImports.java │ │ │ │ └── Wrapper.java │ │ │ └── util/ │ │ │ ├── RangeList.java │ │ │ └── Utils.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── services/ │ │ │ └── javax.script.ScriptEngineFactory │ │ ├── build.lts.template │ │ └── run.lts.template │ └── test/ │ ├── java/ │ │ ├── SimpleTest.java │ │ ├── lt/ │ │ │ ├── LatteObjectOutputStream.java │ │ │ ├── RepeatRule.java │ │ │ ├── compiler/ │ │ │ │ ├── AnnoAnno.java │ │ │ │ ├── AnnotationTest.java │ │ │ │ ├── F.java │ │ │ │ ├── MyAnno.java │ │ │ │ ├── TestAllKindsOfAnnos.java │ │ │ │ ├── TestLambdaFunc.java │ │ │ │ ├── cases/ │ │ │ │ │ ├── TestAnnotations.java │ │ │ │ │ ├── TestBraceScanner.java │ │ │ │ │ ├── TestCodeGen.java │ │ │ │ │ ├── TestDefineAnnotations.java │ │ │ │ │ ├── TestDemo.java │ │ │ │ │ ├── TestDotPackage.java │ │ │ │ │ ├── TestLambdaGen.java │ │ │ │ │ ├── TestLang.java │ │ │ │ │ ├── TestOptimizePointer.java │ │ │ │ │ ├── TestParser.java │ │ │ │ │ ├── TestParserMix.java │ │ │ │ │ ├── TestPrimitiveOperators.java │ │ │ │ │ ├── TestScanner.java │ │ │ │ │ ├── TestScannerLayerControl.java │ │ │ │ │ ├── TestScannerSwitcher.java │ │ │ │ │ ├── TestSemantic.java │ │ │ │ │ ├── TestSynchronized.java │ │ │ │ │ └── anno/ │ │ │ │ │ ├── TestConstructorAnno.java │ │ │ │ │ ├── TestFieldAnno.java │ │ │ │ │ ├── TestMethodAnno.java │ │ │ │ │ ├── TestParamAnno.java │ │ │ │ │ └── TestTypeAnno.java │ │ │ │ ├── err_rec/ │ │ │ │ │ ├── TestParserErrorRecovery.java │ │ │ │ │ ├── TestScannerErrorRecovery.java │ │ │ │ │ └── TestSemanticError.java │ │ │ │ └── functionalInterfaces/ │ │ │ │ ├── BoolParamReturnUnit.java │ │ │ │ ├── ByteParamReturnUnit.java │ │ │ │ ├── CharParamReturnUnit.java │ │ │ │ ├── DoubleParamReturnUnit.java │ │ │ │ ├── FloatParamReturnUnit.java │ │ │ │ ├── IntParamReturnInt.java │ │ │ │ ├── IntParamReturnUnit.java │ │ │ │ ├── LongParamReturnUnit.java │ │ │ │ ├── NoParamReturnBool.java │ │ │ │ ├── NoParamReturnByte.java │ │ │ │ ├── NoParamReturnChar.java │ │ │ │ ├── NoParamReturnDouble.java │ │ │ │ ├── NoParamReturnFloat.java │ │ │ │ ├── NoParamReturnInt.java │ │ │ │ ├── NoParamReturnLong.java │ │ │ │ ├── NoParamReturnShort.java │ │ │ │ ├── NoParamReturnUnit.java │ │ │ │ └── ShortParamReturnUnit.java │ │ │ ├── generator/ │ │ │ │ └── TestJsSupport.java │ │ │ └── repl/ │ │ │ ├── TestBugsInEval.java │ │ │ ├── TestEvaluator.java │ │ │ ├── TestGenericInREPL.java │ │ │ ├── TestJsr223.java │ │ │ ├── TestScript.java │ │ │ └── VariableTest.java │ │ └── suite/ │ │ └── Suite.java │ └── resources/ │ ├── lang-demo/ │ │ ├── advanced.lt │ │ ├── examples/ │ │ │ └── rational.lt │ │ ├── fun.lt │ │ ├── list-map.lts │ │ ├── literals.lts │ │ ├── ltFileStructure.lt │ │ ├── operator.lt │ │ ├── statements.lts │ │ └── typeDef.lt │ ├── test_require.lts │ └── test_require2.lts ├── latte-gradle-plugin/ │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src/ │ └── main/ │ ├── groovy/ │ │ └── org/ │ │ └── lattelang/ │ │ ├── LatteGradlePlugin.groovy │ │ └── LoaderUtil.java │ ├── java/ │ │ └── org/ │ │ └── lattelang/ │ │ ├── DefaultLatteSourceSet.java │ │ └── LatteSourceSet.java │ └── resources/ │ └── META-INF/ │ └── gradle-plugins/ │ └── latte.properties ├── latte-idea-plugin/ │ ├── .gitignore │ ├── resources/ │ │ └── META-INF/ │ │ └── plugin.xml │ └── src/ │ └── org/ │ └── lattelang/ │ └── idea/ │ ├── Consts.java │ ├── LatteFileType.java │ ├── LatteFileTypeFactory.java │ ├── LatteLanguage.java │ ├── highlighter/ │ │ ├── LatteSyntaxHighlighter.java │ │ └── LatteSyntaxHighlighterFactory.java │ └── psi/ │ ├── LatteElementType.java │ ├── LatteTokenTypes.java │ └── latte.flex ├── latte-library/ │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src/ │ ├── main/ │ │ └── latte/ │ │ ├── async/ │ │ │ └── lt/ │ │ │ └── async/ │ │ │ └── async.lt │ │ └── dsl/ │ │ └── lt/ │ │ └── dsl/ │ │ └── html.lt │ └── test/ │ ├── java/ │ │ └── lt/ │ │ └── library/ │ │ └── TestLibraries.java │ └── latte/ │ ├── test_async.lt │ └── test_html.lt └── mannual-zh.md