You can find README written by English. Check here.
Mocca는 C# 기반의 블록 코딩 기반 EPL(Educational Programming Language, 교육용 프로그래밍 언어) 제작에 최적화된 중간 언어입니다. ngEPL을 위하여 개발이 시작되었으며, MIT License로 공개되어 누구나 사용할 수 있습니다.
내부 자체 라이브러리를 통해서, Mocca는 하나의 파일을 다양한 언어로 변환할 수 있습니다. 많은 import
로 언어 구조를 망가뜨리지 않고, 교육에 적합한 간단하고 명확한 구조로 언어를 재구성해 변환합니다.
의존성 없이 독립된 C# 라이브러리의 형태를 하고 있으며, Xamarin과 Mono에서도 작동하여, Unity Engine과 같은 다양한 C# 기반 환경에서 작동합니다.
현재, Mocca가 기본적으로 지원하거나, 지원을 목표하는 언어는 다음과 같습니다.
- Python
- Javascript
- C#
- Java
이외의 언어는 Mocca 확장 모듈을 제작하여 직접 추가하거나, 개발 계획의 수정으로 추가될 수 있습니다.
별도 외부 라이브러리로의 의존성은 존재하지 않으며, C#이 실행 가능한 환경에서 모두 실행될 수 있습니다.
이 프로젝트는 .dll
으로 빌드하여 사용할 수 있습니다. .dll
로 빌드하여 사용을 원하는 프로젝트에 합쳐서 사용 방법에 따라 사용하십시오.
사용을 원하는 C# 파일에 다음 문구를 추가하십시오.
import Mocca.Compiler
…
// 중간 언어 파일과 함께 Parser를 생성합니다.
var parser = new MoccaParser(
"../../../Example/middle_lang.mocca",
CompileMode.FILE_PASS
);
// ParseTree를 생성합니다.
var tree = parser.Parse();
// 블록 집합 객체(List<MoccaBlockGroup>)를 얻습니다.
var eval = tree.Eval();
// ParseTree를 문자열로써 출력합니다.
Console.WriteLine(tree.PrintTree());
// Python Compiler 객체를 생성합니다.
var compiler = new PythonCompiler(eval);
// Python으로 컴파일합니다.
Console.WriteLine(compiler.Compile());
파일을 직접 핸들링하지 않고, 소스 자체를 이용한 방법이 있습니다. 자세한 내용은 위키를 참조하십시오.
Mocca는 MIT License 하에 배포됩니다. 출처와 저작권을 명시하는 조건 하에 배포, 수정, 상업적 이용이 가능합니다. (http://opensource.org/licenses/MIT)
현재 이 프로젝트는 미래창조과학부에서 주관하는 2016년도 창의도전형 SW R&D 지원 사업 의 지원을 받고 있습니다. 자세한 정보는 링크를 참조하십시오.