Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes

Parser Class Reference

This reference page is linked to from the following overview topics: MAXScript Compiler and Interpreter.


Search for all occurrences

#include <parser.h>

Inheritance diagram for Parser:
Inheritance graph
[legend]

List of all members.

Classes

struct   ParserSourceData

Public Member Functions

ScripterExport  Parser ()
ScripterExport  Parser (CharStream *errout)
ScripterExport  Parser (HashTable *scope)
ScripterExport  Parser (CharStream *errout, HashTable *scope)
void  init ()
ScripterExport Value compile (CharStream *stream)
ScripterExport Value compile_factor (CharStream *stream)
ScripterExport Value compile_all (CharStream *stream)
void  collect ()
void  gc_trace ()
Value single_expr (Value *stream)
Value single_factor (Value *stream)
Value compound_expr (Value *stream)
Value compile_macro_script (Value *stream, MacroID id)
bool  parse_rollout_for_edit (CharStream *source_stream, IVisualMSForm *form, Value *filename=NULL)
Value compile_attributes (MSCustAttribDef *cad, CharStream *stream, Class_ID *attribID=NULL)
bool  token_must_be (lex_token wanted_token)
bool  next_token_must_be (lex_token wanted_token)
bool  next_token_must_be_name (Value *wanted_name)
void  back_track (void)
void  back_track_factor (Value *fac)
bool  white_space (MCHAR &c)
void  check_for_EOL (MCHAR c)
void  flush_EO_expr (void)
void  reset ()
MCHAR  get_char ()
void  unget_char (MCHAR c)
void  flush_to_eobuf ()
Value get_string (MCHAR delim)
Value get_path_name ()
Value get_name_thunk (Value *name, BOOL make_new)
Value get_name_thunk (Value *name, BOOL make_new, BOOL forceGlobal)
lex_token  get_punct (MCHAR c)
lex_token  get_token (void)
lex_token  get_path_token (void)
int  get_max_command (Value *&code)
Value add_event_handler (HashTable *handlers, BOOL item_based=TRUE, IVisualMSForm *form=NULL)
Value add_event_handler (HashTable *handlers, Value *owner, BOOL item_based=TRUE, IVisualMSForm *form=NULL)
void  add_tool_local (MCHAR *var, MouseTool *tool, int &local_count, Value **&local_inits)
void  add_plugin_local (MCHAR *var, MSPluginClass *plugin, int &local_count, Value **&local_inits, BOOL constant=FALSE)
Value **  add_rollout_control (Value **controls, int control_index, Rollout *rollout, IVisualMSForm *form=NULL)
Value **  add_rcmenu_item (Value **items, int &item_count, RCMenu *menu, BOOL subMenu=FALSE)
void  open_include_file (MCHAR c)
void  check_for_const_lvalue (Value *&lval)
Value optimize_return (Value *expr)
Value source_position_wrap (Value *code)
Value source_position_wrap (Value *code, unsigned int last_token_end, unsigned int last_token_end_line)
void  insert_resource (Value *resourceID, CharStream *resourceSource)
Value expr_seq (lex_token delimiter)
Value vector_literal ()
Value index_or_vector ()
Value hash_literals ()
Value array_literal ()
Value bit_array_literal ()
Value factor ()
Value property_index_array ()
Value coercion ()
Value deref_expr ()
Value function_call ()
Value power_expr ()
Value uminus_expr ()
Value term ()
Value plus_expr ()
Value compare_expr ()
Value not_expr ()
Value and_expr ()
Value simple_expr ()
Value variable_declaration ()
Value context_expr ()
Value change_handler ()
Value function (MCHAR *name, short flags=0)
Value function_def ()
Value mapped_fn_def ()
Value max_command ()
Value handler_def ()
Value struct_body (Value *name)
Value struct_def ()
Value try_catch ()
Value tool_body (Value *name)
Value tool_def ()
Value rcmenu_body (Value *name)
Value rcmenu_def ()
void  plugin_paramblock (MSPluginClass *plugin, Array *pblock_defs, HashTable *handlers, int base_refno)
Value plugin_def ()
Value attributes_body (MSCustAttribDef *cad, Array *remap_param_names)
Value attributes_def (MSCustAttribDef *cad=NULL, Class_ID *attribID=NULL)
Value macro_script (MacroID mid=UNDEFINED_MACRO)
Value rollout_body (Value *name, lex_token type=t_rollout, IVisualMSForm *form=NULL)
Value utility_def ()
Value rollout_def ()
Value exit_expr ()
Value continue_expr ()
Value return_expr ()
Value for_expr ()
Value do_expr ()
Value while_expr ()
Value case_expr ()
Value if_expr ()
Value assign_expr ()
Value expr ()
Value top_level_expr ()
Value function (MCHAR *name, Value *owner, short flags=0)

Static Public Member Functions

static void  setup ()
static bool  should_source_position_wrap (Value *code)

Public Attributes

CharStream *  source
lex_token  token
Value token_value
bool  at_EOL
bool  back_tracked
bool  EOL_at_back_track
bool  quoted_level_name
bool  spaced
bool  space_before
bool  space_after
bool  throws_ok
bool  in_macroscript
bool  no_free_refs
bool  no_stack_refs
bool  dotted_names_ok
bool  ignore_string_escapes
bool  mzp_names
HashTable *  current_scope
int  parm_count
int  keyparm_count
int  local_count
int  frame_index
int  frame_level
int  expr_level
CharStream *  stdout_stream
Value lookahead_factor
MCHAR  line_buf [256]
MCHAR *  line_buf_p
CharStream *  source_capture
int  ungetch_count
Tab< CharStream * >  src_stack
Tab< CharStream * >  src_capture_stack
Tab< ParserSourceData >  src_parser_data_stack
Tab< int >  src_stack_encryption_keys
int  tok_start
int  last_tok_end
int  tok_start_line
int  last_tok_end_line
int  prev_last_tok_end
int  prev_last_tok_end_line
int  next_last_tok_end
int  next_last_tok_end_line
CodeBlock code_block
int  code_block_level
int  current_y
int  bottom_y
int  group_num
int  eol_whitespace_start
int  eol_whitespace_end

Static Public Attributes

static Tab< rollout_control rollout_controls
static MCHAR *  token_names []

Constructor & Destructor Documentation

ScripterExport Parser ( )
ScripterExport Parser ( CharStream *  errout )
ScripterExport Parser ( HashTable *  scope )
ScripterExport Parser ( CharStream *  errout,
HashTable *  scope 
)

Member Function Documentation

void init ( )
ScripterExport Value* compile ( CharStream *  stream )
ScripterExport Value* compile_factor ( CharStream *  stream )
ScripterExport Value* compile_all ( CharStream *  stream )
static void setup ( ) [static]
void collect ( ) [inline, virtual]

Implements Collectable.

{ delete this; }
void gc_trace ( ) [virtual]
Value* single_expr ( Value stream )
Value* single_factor ( Value stream )
Value* compound_expr ( Value stream )
Value* compile_macro_script ( Value stream,
MacroID  id 
)
bool parse_rollout_for_edit ( CharStream *  source_stream,
IVisualMSForm form,
Value filename = NULL 
)
Value* compile_attributes ( MSCustAttribDef cad,
CharStream *  stream,
Class_ID attribID = NULL 
)
bool token_must_be ( lex_token  wanted_token )
bool next_token_must_be ( lex_token  wanted_token )
bool next_token_must_be_name ( Value wanted_name )
void back_track ( void  )
void back_track_factor ( Value fac )
bool white_space ( MCHAR &  c )
void check_for_EOL ( MCHAR  c )
void flush_EO_expr ( void  )
void reset ( )
MCHAR get_char ( )
void unget_char ( MCHAR  c )
void flush_to_eobuf ( )
Value* get_string ( MCHAR  delim )
Value* get_path_name ( )
Value* get_name_thunk ( Value name,
BOOL  make_new 
)
Value* get_name_thunk ( Value name,
BOOL  make_new,
BOOL  forceGlobal 
)
lex_token get_punct ( MCHAR  c )
lex_token get_token ( void  )
lex_token get_path_token ( void  )
int get_max_command ( Value *&  code )
Value* add_event_handler ( HashTable *  handlers,
BOOL  item_based = TRUE,
IVisualMSForm form = NULL 
)
Value* add_event_handler ( HashTable *  handlers,
Value owner,
BOOL  item_based = TRUE,
IVisualMSForm form = NULL 
)
void add_tool_local ( MCHAR *  var,
MouseTool *  tool,
int &  local_count,
Value **&  local_inits 
)
void add_plugin_local ( MCHAR *  var,
MSPluginClass *  plugin,
int &  local_count,
Value **&  local_inits,
BOOL  constant = FALSE 
)
Value** add_rollout_control ( Value **  controls,
int  control_index,
Rollout *  rollout,
IVisualMSForm form = NULL 
)
Value** add_rcmenu_item ( Value **  items,
int &  item_count,
RCMenu *  menu,
BOOL  subMenu = FALSE 
)
void open_include_file ( MCHAR  c )
void check_for_const_lvalue ( Value *&  lval )
Value* optimize_return ( Value expr )
static bool should_source_position_wrap ( Value code ) [static]
Value* source_position_wrap ( Value code )
Value* source_position_wrap ( Value code,
unsigned int  last_token_end,
unsigned int  last_token_end_line 
)
void insert_resource ( Value resourceID,
CharStream *  resourceSource 
)
Value* expr_seq ( lex_token  delimiter )
Value* vector_literal ( )
Value* index_or_vector ( )
Value* hash_literals ( )
Value* array_literal ( )
Value* bit_array_literal ( )
Value* factor ( )
Value* property_index_array ( )
Value* coercion ( )
Value* deref_expr ( )
Value* function_call ( )
Value* power_expr ( )
Value* uminus_expr ( )
Value* term ( )
Value* plus_expr ( )
Value* compare_expr ( )
Value* not_expr ( )
Value* and_expr ( )
Value* simple_expr ( )
Value* variable_declaration ( )
Value* context_expr ( )
Value* change_handler ( )
Value* function ( MCHAR *  name,
short  flags = 0 
)
Value* function_def ( )
Value* mapped_fn_def ( )
Value* max_command ( )
Value* handler_def ( )
Value* struct_body ( Value name )
Value* struct_def ( )
Value* try_catch ( )
Value* tool_body ( Value name )
Value* tool_def ( )
Value* rcmenu_body ( Value name )
Value* rcmenu_def ( )
void plugin_paramblock ( MSPluginClass *  plugin,
Array *  pblock_defs,
HashTable *  handlers,
int  base_refno 
)
Value* plugin_def ( )
Value* attributes_body ( MSCustAttribDef cad,
Array *  remap_param_names 
)
Value* attributes_def ( MSCustAttribDef cad = NULL,
Class_ID attribID = NULL 
)
Value* macro_script ( MacroID  mid = UNDEFINED_MACRO )
Value* rollout_body ( Value name,
lex_token  type = t_rollout,
IVisualMSForm form = NULL 
)
Value* utility_def ( )
Value* rollout_def ( )
Value* exit_expr ( )
Value* continue_expr ( )
Value* return_expr ( )
Value* for_expr ( )
Value* do_expr ( )
Value* while_expr ( )
Value* case_expr ( )
Value* if_expr ( )
Value* assign_expr ( )
Value* expr ( )
Value* top_level_expr ( )
Value* function ( MCHAR *  name,
Value owner,
short  flags = 0 
)

Member Data Documentation

MCHAR* token_names[] [static]
CharStream* source
lex_token token
bool at_EOL
bool spaced
bool throws_ok
bool mzp_names
HashTable* current_scope
CharStream* stdout_stream
MCHAR line_buf[256]
MCHAR* line_buf_p
CharStream* source_capture
Tab<CharStream*> src_stack
Tab<CharStream*> src_capture_stack
Tab<ParserSourceData> src_parser_data_stack
int tok_start
int current_y
int bottom_y
int group_num

Parser Parser Parser Parser Parser Parser Parser Parser Parser Parser
Parser Parser Parser Parser Parser Parser Parser Parser Parser Parser