출처: https://github.com/amecky/ds_vm
문자열로 수식이 주어 졌을 때 계산을 수행하는 라이브러리.. C로 되어 있어서 C++에서도 사용 가능하고.. 변수 추가 및 가로 우선순위와 사용자 함수도 추가가 가능한.. 아주 빠른 라이브러리..
void mul_method(vm_stack* stack) {
float a = VM_POP(stack);
float b = VM_POP(stack);
VM_PUSH(stack, a*b);
}
int main() {
vm_context* ctx = vm_create_context();
vm_add_function(ctx, "mul", mul_method, 17, 2);
vm_add_variable(ctx, "A", 10.0f);
vm_add_variable(ctx, "B", 2.0f);
vm_add_variable(ctx, "C", 3.0f);
vm_token tokens[64];
int ret = vm_parse(ctx, "mul(2,2) * A + (B+C)", tokens, 64);
float r = 0.0f;
int code = vm_run(ctx, tokens, ret, &r);
if (code == 0) {
printf("%f", r);
}
vm_destroy_context(ctx);
}
'블로그 (Blog) > 개발로그 (Devlogs)' 카테고리의 다른 글
Mesh Deformation (0) | 2024.05.20 |
---|---|
스트링 매칭률 계산 라이브러리 Rapid fuzzy (0) | 2024.03.29 |
PPT의 shape 이름 지정하기 (0) | 2024.03.19 |
LibTomCrypt를 이용한 AES – CFB 모드 복호화 테스트 (0) | 2024.03.19 |
지정 파일들만 남기고 모두 지우기 (0) | 2024.03.19 |