

Expressions Syntax
As an introduction on how to read BNF notation, you simply have to know that non-bold items on the left of the arrow can be replaced by one of the items in the list on the right. A vertical bar "|" stands for a choice among a number of possibilities ("or"). If the item on the right of the arrow is also non-bold, it can in turn be replaced, and so on. Terminal tokens indicate that they have no options of their own, and are listed in bold.
For example, the following lines show how -5 * (Fc + 20) can be derived from "expression" by repeated substitutions:
expression expression * expression expression * (expression) expression * (expression + expression) single_expression * (single_expression + single_expression) constant * (predefined_token + constant) integer_value * (Fc + integer_value) -5 * ( Fc + 20 )
expression ' single_expression | expression + expression | expression - expression | expression * expression | expression / expression | expression % expression | - expression | + expression | ( expression ) single_expression ' constant |predefined_token |predefined_function |math_function |scene_element |local_variable constant ' integer_value |float_value predefined_token ' Fc |Fs |Fe |T |PI |E predefined_function ' randBool( seed ) |rand_0_1( seed ) |RAND( seed, min_value, max_value ) seed ' positive_integer_value |- |Ø (nothing) math_function ' sin( expression ) |cos( expression ) |log( expression ) |exp( expression ) |abs( expression ) |sqrt( expression ) |pow( expression , expression ) |min( expression , expression ) |max( expression , expression ) |av( list_of_expressions ) |cond(conditional_expression , expression , expression ) |at_time ( expression , scene_element ) |at_frame ( expression , scene_element ) |ctr_dist ( scene_element , scene_element ) |ctr_dist_cam ( scene_element ) |ctr_dist_cam_int ( scene_element ) |sinus ( expression , expression, expression ) |oscil ( expression , expression , expression , expression , interpolation_type, expression , expression , interpolation_type ) |ease_in (expression , expression , interpolation_type) |ease_out ( expression , expression , interpolation_type) |noise ( expression , expression, expression ) |fmod ( expression , expression ) |has_relation ( scene_element , relation_name , direction_type ) direction_type ' FORWARD |BACKWARD interpolation_type ' LinearInterp |SplineInterp relation_name ' Blattice |BptchDeform |BSplDeform |BWave |Bool |CamConstr |CamInt |CamIntPath |CamPath |CamUpVct |Clay |Cluster |ClusterCtr |Cns2Pnts |Cns3Pnts |CnsDir |CnsFPntObj |CnsNorm |CnsObjPnt |CnsOri |CnsPivPln |CnsPln |CnsPos |CnsPosLim |CnsPrefAxis |CnsRotLim |CnsScl |CnsTang |CnsUpVct |Custom |DynDGrav |DynFan |DynForce |DynGrav |DynNail |DynObst |DynWind |EnvShp |Exp |Extract |Extrusion |Fcurves |FcvKeys |FlexEnv |FourSided |Inst |InvKin |Inverse |JntModel |LigConstr |LigInt |LigIntCons |LigIntPath |LigPath |LigSelection |Mat |MovePtDef |MovePtGen |NLattice |NPtchDeform |NSelection |NSplDeform |NWave |Parent |Path |Pict |QSControl |Qstretch |Revolution |RigdEnv |Rounding |Shader |Shader_Array |Shape |Skinning |Symmetry |T2DEnv |T2DGlb |T2DLoc |T3DGlb |T3DLoc |TagGroup |Trajectory |Trim |Vertices |WavPath |Zip list_of_expressions ' expression |list_of_expressions , expression conditional_expression ' expression |expression < expression |expression > expression |expression <= expression |expression >= expression |expression == expression |expression != expression scene_element ' chapter_id element_name . parameter chapter_id ' MOD |LIG |CAM |MAT |T2D |T3D |WAV |CHN | Ø (nothing) element_name ' a_string_of_characters parameter ' model_list |light_list |camera_list |material_list |2Dtexture_list |3Dtexture_list |wave_list |channel_list model_list ' model_common_list model_lattice model_spline_fitting model_patch_fitting model_shape_list model_cluster_list model_dynamics model_kine_list model_metaclay_list light_list ' light_infinite |light_spot |light_point |light_sun light_infinite ' lgetnx lgetny lgetnz lgtrs ligvis lgr lgg lgb lgumbr light_spot ' lgetnx lgetny lgetnz lgietx lgiety lgietz lgtrs lgitrs ligvis lgr lgg lgb lgcone lgsprd lgstrt lgend lgumbr larotx laroty larotz lasclx lascly lasclz light_point ' lgetnx lgetny lgetnz lgtrs ligvis lgr lgg lgb lgstrt lgend lgumbr larotx laroty larotz lasclx lascly lasclz light_sun ' lgr lgg lgb lgumbr camera_list ' cmetnx cmetny cmetnz cmietx cmiety cmietz cmtrs cmitrs camvis cmroll cmfov cmnear cmfar cmffcl cmfstp cmfdst fdstrt fdstop fdred fdgreen fdblue fdtransp cmpdst cmpszx cmpszy cmpofx cmpofy cmfnfc cmfffc cmfout cmfcoc cmpact material_list ' mtambr mtambg mtambb mtdifr mtdifg mtdifb mtspcr mtspcg mtspcb mtspcd mtrefl mttrsp mtrind mtblrw mtblrd 2Dtexture_list ' t2uscl t2vscl t2uoff t2voff t2bld t2amb t2diff t2spec t2trsp t2refl t2roug t2refm t2rot t2Srtx t2Srty t2Srtz t2Sslx t2Ssly t2Sslz t2Strx t2Stry t2Strz 3Dtexture_list ' t3spce t3str t3powr t3spce t3angl t3dbld t3amb t3diff t3spec t3refl t3trsp t3rou t3fac2 t3fac3 t3fac4 t3cl1r t3cl1g t3cl1b t3cl2r t3cl2g t3dc2a t3cl2b t3dc1a t3cl3r t3cl3g t3cl3b t3dc3a t3cl4r t3cl4g t3cl4b t3dc4a t3cl5r t3cl5g t3cl5b t3dc5a t3sclx t3scly t3sclz t3rotx t3roty t3rotz t3trsx t3trsy t3trsz wave_list ' wvetnx wvetny wvetnz wvrotx wvroty wvrotz wvsclx wvscly wvsclz wvtrns channel_list ' - depends on which driver is used local_variable ' A |B |C |D model_common_list ' local_global_flag etrnx local_global_flag etrny local_global_flag etrnz local_global_flag scalx local_global_flag scaly local_global_flag scalz local_global_flag rotx local_global_flag roty local_global_flag rotz trans nvisib bvisib matte bmatte local_global_flag ' G. |L. |0 (none) model_lattice ' ltnode ltbrch model_spline_fitting ' nsfscx nsfscy nsfscz nsfrol nsftrx nsftry nsftrz bsfscx bsfscy bsfscz bsfrol bsftrx bsftry bsftrz model_patch_fitting ' npfscx npfscy npfscz npfrtx npfrty npfrtz npftrx npftry npftrz bpfscx bpfscy bpfscz bpfrtx bpfrty bpfrtz bpftrx bpftry bpftrz model_shape_list ' shape wshp_id model_cluster_list ' clustr_clusterName cw_clusterName_id id ' positive_integer_value clusterName ' a_string_of_characters model_dynamics ' elast srough krough rtcns model_kine_list ' velx vely velz accx accy accz rvelx rvely rvelz raccx raccy raccz model_metaclay_list ' clywgt clayex clayey clayez
