AniVision: POV Command Comment GrammarPOV Scene File ScannerThe POVRay scene files read in by AniVision are not completely parsed but only scanned for special command comments which are normal C or C++-style comments when parsed by POVRay. The rules are as follows:
Examples: //@object(macro=something) @object(macro2=something_else) @- ignored // @object(macro=foo, // comment // params={bar}) // comment //@-object(macro=ignored) /*@object(macro=foobar, // comment params={a,b/*,c,d,e*/} // comment @- text ignored */ POV Command Comment Syntax in EBNFPOV Command comments have a context-free grammar which partly builds upon definitions from the animation description ANI grammar. pov_exprlist ::= /* empty */ | pov_exprlist_ne . pov_exprlist_ne ::= pov_expr | pov_exprlist_ne "," pov_expr . pov_expr ::= expr . pov_assignment_list ::= /*empty */ | pov_assignment_list_ne . pov_assignment_list_ne ::= pov_assignment_list_ent | pov_assignment_list_ne "," pov_assignment_list_ent . pov_assignment_list_ent ::= name "=" pov_expr . /* Entry in POV @object() spec: */ pov_object_entry ::= "macro" "=" name | "declare" "=" name | "params" "=" "{" pov_exprlist "}" | "defs" "=" "{" pov_assignment_list "}" | "include" "=" "{" pov_exprlist "}" | "type" "=" pov_expr | "append_raw" "=" pov_expr . pov_object_entry_list ::= pov_object_entry | pov_object_entry_list "," pov_object_entry . /* POV command comment entry: */ pov_entry ::= "@" TSP_OBJECT "(" pov_object_entry_list ")" | "@" TSP_FILEID "=" name . pov_entry_list_ne ::= pov_entry | pov_entry_list_ne pov_entry . pov_entry_list ::= /* empty */ | pov_entry_list_ne . START ::= pov_entry_list .
|