MAGES는 YAMP의 공식 후속작입니다. 매우 간단하면서도 강력한 표현식 파서 및 해석기입니다. MAGES를 사용하면 정교하고 사용자 정의가 쉽고 가벼운 스크립팅 엔진을 애플리케이션에 포함할 수 있습니다.
다른 응용 프로그램 중에서 MAGES는 Microsoft의 PowerToys에 사용되었습니다.
MAGES는 객체 메타데이터, 직접 목록 지원 및 JSX 구문으로 업데이트되었습니다(v3.0.0).
2023년 :
MAGES는 복소수를 지원하도록 업데이트되었습니다(v2.0.0). 또한 현대적인 가능성을 활용하도록 빌드 대상과 런타임이 업데이트되었습니다.
2018년 :
첫 번째 안정 버전이 출시되었습니다. 현재 버전 1.6.0에는 향상된 REPL이 포함되어 있습니다. 라이브러리에는 C#에서 간단한 스크립팅 작업을 수행하는 데 필요한 모든 것이 포함되어 있습니다. 라이브러리에 대한 CodeProject 기사(일부 배경 및 성능 비교도 포함)도 제공됩니다.
MAGES 자체에는 종속성이 없지만 테스트는 NUnit에 종속되고 벤치마크에서는 BenchmarkDotNet을 사용합니다. 일반적으로 MAGES는 NuGet 패키지 소스를 통해 설치해야 합니다. 이것이 효과가 없다면 소스를 복제하고 MAGES를 직접 빌드하십시오. 모든 단위 테스트가 통과하는지 확인하세요.
전체 라이브러리는 .NET Core 3.0(또는 이상)/.NET 5.0(또는 이상) 애플리케이션에서 사용되도록 설계되었습니다. 이는 Unity 2021.2 또는 Mono 6.4와 호환된다는 것을 의미합니다. NuGet 패키지는 공식 패키지 피드를 통해 제공됩니다.
가장 간단한 경우에는 전역 범위(변수 및 함수에 대한)를 유지하고 해석을 시작하는 새 엔진을 만드는 것입니다.
var engine = new Mages . Core . Engine ( ) ;
var result = engine . Interpret ( " sin(2) * cos(pi / 4) " ) ; // 0.642970376623918
또한 미리보기에서 재사용 가능한 블록을 만들 수도 있습니다.
var expOne = engine . Compile ( " exp(1) " ) ;
var result = expOne ( ) ; // 2.71828182845905
또는 MAGES에서 생성된 요소와 상호 작용할 수 있습니다.
var func = engine . Interpret ( " (x, y) => x * y + 3 * sqrt(x) " ) as Mages . Core . Function ;
var result = func . Invoke ( new Object [ ] { 4.0 , 3.0 } ) ; // 18.0
또는 더 간단합니다(자세한 내용은 시작하기 문서에 설명되어 있음).
var func = engine . Interpret ( " (x, y) => x * y + 3 * sqrt(x) " ) as Mages . Core . Function ;
var result = func . Call ( 4 , 3 ) ; // 18.0
이는 보다 기본적인 예 중 일부에 불과합니다. 자세한 내용은 설명서에서 확인할 수 있습니다.
문서는 이 저장소의 doc 폴더에 배치되는 Markdown 문서 형식으로 제공됩니다. 다음 링크는 확인해 볼 가치가 있습니다.
누락되거나 불분명하거나 잘못된 것이 있으면 PR을 제출하거나 문제를 제출하세요. 자세한 내용은 기여에 대한 다음 섹션을 참조하세요.
기능 구현이나 버그 수정 형태의 기여는 매우 환영하지만 체계적이고 일관된 방식으로 수행되어야 합니다. 작업을 시작하기 전에 기여 지침을 읽어야 합니다.
버그 보고서 및 기능 요청 형태로 기여할 수도 있습니다. 오픈소스 개발 만세!
semver의 규칙은 우리의 빵과 버터입니다. 간단히 말해서 이는 다음을 의미합니다.
따라서 동일한 주요 버전 내에서 주요 변경 사항을 기대하지 마십시오.
다음 회사는 MAGES 개발의 일부를 후원했습니다.
프로젝트에 대한 모든 지원과 신뢰에 감사드립니다!
MIT 라이센스 (MIT)
저작권 (c) 2016-2024 Florian Rappl
본 소프트웨어 및 관련 문서 파일("소프트웨어")의 사본을 취득한 모든 사람에게 사용, 복사, 수정, 병합에 대한 권리를 포함하되 이에 국한되지 않고 제한 없이 소프트웨어를 취급할 수 있는 권한이 무료로 부여됩니다. , 소프트웨어 사본을 게시, 배포, 재라이센스 부여 및/또는 판매하고, 소프트웨어를 제공받은 사람에게 다음 조건에 따라 그렇게 하도록 허용합니다.
위의 저작권 고지와 본 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함됩니다.
소프트웨어는 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다. 어떠한 경우에도 작성자나 저작권 보유자는 계약, 불법 행위 또는 기타 행위로 인해 소프트웨어나 사용 또는 기타 거래와 관련하여 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다. 소프트웨어.