# # The EBNF grammar for the MNG-1.0 standard chunks in MNG datastreams # Version: 0.4 # Author: Cosmin Truta, Jan 2001 # Contributing authors: Glenn Randers-Pehrson and Gerard Juyn # mng_standalone_datastream ::= png_standalone_datastream | jng_standalone_datastream | mng_complete_datastream mng_complete_datastream ::= mng_signature mng_datastream mng_signature ::= "\212MNG\r\n\32\n" mng_datastream ::= MHDR mng_chunks MEND mng_chunks ::= (TERM)? mng_chunks_without_SAVE_SEEK (SAVE mng_chunks_with_SEEK)? mng_chunks_without_SAVE_SEEK ::= (mng_image_edit | mng_image_disp | mng_loop | mng_toplevel_chunk | mng_general_info_chunk)* mng_chunks_with_SEEK ::= (mng_chunks_without_SAVE_SEEK | (TERM)? SEEK)+ # MNG image editing (definition and manipulation) mng_image_edit ::= DEFI | CLON | PAST | MAGN | DISC | mng_embedded_object | mng_dpng_datastream # MNG image displaying mng_image_disp ::= BACK | FRAM | MOVE | CLIP | SHOW # MNG loops mng_loop ::= LOOP (mng_image_edit | mng_image_disp | mng_toplevel_chunk | mng_general_info_chunk | mng_loop)* ENDL # MNG objects mng_embedded_object ::= png_datastream | jng_datastream | mng_basi_datastream # MNG BASI datastreams mng_basi_datastream ::= BASI png_image_info (png_image_data)? png_general_info IEND # MNG Delta-PNG datastreams mng_dpng_datastream ::= DHDR (PROM)? (mng_dpng_mod_chunk)* (mng_dpng_png_chunks | mng_dpng_jng_chunks) IEND mng_dpng_png_chunks ::= (IHDR | IPNG)? (png_image_color_info | mng_dpng_mod_chunk)* (PLTE | PPLT)? (png_image_noncolor_info | mng_dpng_mod_chunk)* (png_image_data)? (png_general_info | mng_dpng_mod_chunk)* mng_dpng_jng_chunks ::= (JHDR | IJNG)? (jng_image_info | mng_dpng_mod_chunk)* (png_image_data | jng_image_data)? (png_general_info | mng_dpng_mod_chunk)* mng_dpng_mod_chunk ::= DROP | DBYK | ORDR # MNG general chunk categories mng_toplevel_chunk ::= png_color_info_chunk | PLTE | tRNS | bKGD | sBIT | pHYs | sPLT mng_general_info_chunk ::= png_general_info_chunk | eXPI | fPRI | nEED | pHYg