root/src/bifs/script.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


/*
 *                      GPAC - Multimedia Framework C SDK
 *
 *                      Authors: Jean Le Feuvre
 *                      Copyright (c) Telecom ParisTech 2000-2012
 *                                      All rights reserved
 *
 *  This file is part of GPAC / BIFS codec sub-project
 *
 *  GPAC is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU Lesser General Public License as published by
 *  the Free Software Foundation; either version 2, or (at your option)
 *  any later version.
 *
 *  GPAC is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; see the file COPYING.  If not, write to
 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

#ifndef _SFSCRIPT_H
#define _SFSCRIPT_H

#include <gpac/internal/bifs_dev.h>

#if !defined(GPAC_DISABLE_BIFS) && defined(GPAC_HAS_SPIDERMONKEY)

#define NUMBITS_STATEMENT       3
#define NUMBITS_EXPR_TYPE       6
#define MAX_NUM_EXPR            100

enum
{
        ST_IF=0,
        ST_FOR=1,
        ST_WHILE=2,
        ST_RETURN=3,
        ST_BREAK=5,
        ST_CONTINUE=6,
        ST_COMPOUND_EXPR=4,
        ST_SWITCH=7
};

enum
{
        ET_CURVED_EXPR=0,
        ET_NEGATIVE=1,
        ET_NOT=2,
        ET_ONESCOMP=3,
        ET_INCREMENT=4,
        ET_DECREMENT=5,
        ET_POST_INCREMENT=6,
        ET_POST_DECREMENT=7,
        ET_CONDTEST=8,
        ET_STRING=9,
        ET_NUMBER=10,
        ET_IDENTIFIER=11,
        ET_FUNCTION_CALL=12,
        ET_NEW=13, ET_OBJECTCONSTRUCT=13,
        ET_OBJECT_MEMBER_ACCESS=14,
        ET_OBJECT_METHOD_CALL=15,
        ET_ARRAY_DEREFERENCE=16,
        ET_ASSIGN=17,
        ET_PLUSEQ=18,
        ET_MINUSEQ=19,
        ET_MULTIPLYEQ=20,
        ET_DIVIDEEQ=21,
        ET_MODEQ=22,
        ET_ANDEQ=23,
        ET_OREQ=24,
        ET_XOREQ=25,
        ET_LSHIFTEQ=26,
        ET_RSHIFTEQ=27,
        ET_RSHIFTFILLEQ=28,
        ET_EQ=29,
        ET_NE=30,
        ET_LT=31,
        ET_LE=32,
        ET_GT=33,
        ET_GE=34,
        ET_PLUS=35,
        ET_MINUS=36,
        ET_MULTIPLY=37,
        ET_DIVIDE=38,
        ET_MOD=39,
        ET_LAND=40,
        ET_LOR=41,
        ET_AND=42,
        ET_OR=43,
        ET_XOR=44,
        ET_LSHIFT=45,
        ET_RSHIFT=46,
        ET_RSHIFTFILL=47,
        ET_BOOLEAN=48,
        ET_VAR=49,
        ET_FUNCTION_ASSIGN=50,
        NUMBER_OF_EXPR_TYPE=51
};

GF_Err SFScript_Parse(GF_BifsDecoder *codec, SFScript *script_field, GF_BitStream *bs, GF_Node *n);
#ifndef GPAC_DISABLE_BIFS_ENC
GF_Err SFScript_Encode(GF_BifsEncoder *codec, SFScript *script_field, GF_BitStream *bs, GF_Node *n);
#endif

#endif /* !defined(GPAC_DISABLE_BIFS) && defined(GPAC_HAS_SPIDERMONKEY) */

#endif

/* [<][>][^][v][top][bottom][index][help] */