110 likes | 238 Views
Crash. A Graphical Animation Tool. By: Mikhail Litvin Vadim Belobrovka Michael Anikin Daniel Burdeinick. Project Goals. Scripting language. Create graphical animations. Use OpenGL for best quality without the complexities involved. Simple java-like programming style.
E N D
Crash. A Graphical Animation Tool By: Mikhail Litvin Vadim Belobrovka Michael Anikin Daniel Burdeinick Crash Language
Project Goals • Scripting language. • Create graphical animations. • Use OpenGL for best quality without the complexities involved. • Simple java-like programming style. • Intuitive, flexible and robust. Crash Language
Crash’s Summary • Animation generator with few instructions. • Crash source files with .crh extension. • Source code is a sequence of statements enclosed with StartCRASH and EndCRASH. Crash Language
Crash syntax and semantics • Supports If-Else and While constructs • Semicolon is used as a separator • Several primitives: int, float, color and string • Supports comments of the form /* Comment */ Crash Language
Example of a If-Else construct If ( a == 1) Then a = a + 1; Else a = a + 4; EndIf Crash Language
Example of a While Construct int a; a = 8 While (a < 15) Do a = a + 1; EndWhile Crash Language
Pipeline Crash script Lexer Parser Walker Crash Engine GL4Java Animation Crash Language
Overview Crash’s Main Objects • Scene • Animator • Path • Layer • Element Crash Language
Sample Program Element triangle(a); triangle.setColor(red); … Layer l1(1),l2(2); ellipse.setLayer(l1); triangle.setLayer(l2); Crash Language
Testing Procedures • Phase I: independent module testing to examine basic functionality of each module, parser, lexer, walker, and graphical engine. • Phase II: tested combined modules for complete functionality of language. • Phase III: outside user created a script and tested different functionalities of the language for unbiased opinion. Crash Language
Lessons Learned and Conclusions • Start early… • Compiler related technologies. • Careful planning and time constraints organization. • Development strategy, ANTLR - LL(k) • Testing, overlooked important part of the project. Should allocate more time • Start small and expand from there. Crash Language