Product
High Perpormance
Reliablilty & Scalablilty
Security
VTC(Vine Text Compiler)
VTC(Vine Text Compiler)?
VTC는 네트워크 프로토콜의 Text기반이 가지는 Hand Coding의 단점을 보완하여, 빠르게 Build 할 수 있는 강력한 개발 도구입니다. 또한 현재 다양한 응용서비스의 Application-aware Networking이 확산되고 있는 가운데, 이를 유연하게 개발 할 수 있는 Text Compiler입니다.
Feature
- Performance Oriented Compiler
- Code Generation : Compiler 기본 기능
- ANSI C, Multi-threading 지원
- ABNF(RFC2234) 준수
- Multiplicity : 3가지 Generation Mode를 지원
1. Embedded-Optimized : For embedded system without diagnostic
2. Space-Optimized : Minimizing use of memory
3. Time-Optimized : Fast speed Optimized
- ABNF Grammer에 맞는 다양한 case의 documents 생성
- ABNF Grammer Verification을 수행
- 높은 성능위해 C string function 이용하지 않고 character256Array 사용
- Runtime시 malloc, free 사용하지 않고 predefine된 메모리구조 사용
- List형태의 type을 pointer와 array 형태로 선택 지원
- Read buffer를 가리키는 pointer 형태와 copy하는 형태 모두 지원
- Predictive parsing tables : 입력 ABNF로 Control table 구성
- Prioritized-Choice Disambiguation : 입력 ABNF의 Parsing 순서 지정
- Syntactic and Semantic Predicates : Verification
[특허출원]10-2007-0060822 텍스트 컴파일러 추가 룰 및 메모리 구조
Extension Rule
- Extention Rule
- 설명
- SET
- It doesn't have sequence( 순서 상관없는 Element, SETrulelikeASN.1 )
- PDU
- ProtocolDataUnit for encoding/decoding
- CUT
- Delemeter
- VAR
- Direct variablename
- CHOICE
- Direct choicename
- BITMASK
- Direct bitmaskname
- TDEF
- Same as typedef
- NCASE
- It is used only literal, and the literal is case-insensitive
- ALT
- When there exist several alternation , user can direct ALT, it process at last
- DUP
- When alternation element terminated same char, user can define next chars
- TOK
- It is used for other type generation and has relation about decoding rule, so it doesn't appear element in user struct
- SKIP
- it consists of 2 element, skipping and the data element. The skipping element is number of skipping byte and data element is next processing element
- Maximum value of unlimited repeat is considered 9999.
- In case of bin-val, dec-val, hex-val, max series of concatenation is 80.
- Incase of hex-val value must be ranged 0-255.
- Rule must be terminated ";" string, it is used delimiter between rule.
- Rule is not support more than one optional element in union because of difficulty of defining structure.
Ex) "A=B|C[D]|E" must changed "A = B | newRule | E and newRule= C [D]
- Rule name is case sensitive and not support "-" character because of generation C structure. Generation of C Structure