sleep.parser

Class CodeGenerator

Implemented Interfaces:
ParserConstants

public class CodeGenerator
extends Object
implements ParserConstants

Generates code for the parser. The main thing here developers might concern themselves with is the installEscapeConstant function

Field Summary

protected Stack
BACKUP_BLOCKS
protected Block
CURRENT_BLOCK
protected static HashMap
escape_constants
protected Parser
parser

Fields inherited from interface sleep.parser.ParserConstants

EXPR_ASSIGNMENT, EXPR_ASSIGNMENT_OP, EXPR_ASSIGNMENT_T, EXPR_ASSIGNMENT_T_OP, EXPR_BIND, EXPR_BIND_FILTER, EXPR_BIND_PRED, EXPR_BLOCK, EXPR_BREAK, EXPR_ESCAPE, EXPR_EVAL_STRING, EXPR_FOR, EXPR_FOREACH, EXPR_FOREACH_SPECIAL, EXPR_IF, EXPR_IF_ELSE, EXPR_RETURN, EXPR_WHILE, EXPR_WHILE_SPECIAL, HACK_DEC, HACK_INC, IDEA_BLOCK, IDEA_BOOLEAN, IDEA_DOUBLE, IDEA_EXPR, IDEA_EXPR_I, IDEA_FUNC, IDEA_HASH_PAIR, IDEA_LITERAL, IDEA_NUMBER, IDEA_OPER, IDEA_PROPERTY, IDEA_STRING, OBJECT_ACCESS, OBJECT_ACCESS_S, OBJECT_CL_CALL, OBJECT_IMPORT, OBJECT_NEW, PRED_AND, PRED_BI, PRED_EXPR, PRED_IDEA, PRED_OR, PRED_UNI, VALUE_INDEXED, VALUE_SCALAR

Constructor Summary

CodeGenerator(Parser _parser)

Method Summary

void
add(Step n, Token token)
void
backup()
Block
getRunnableBlock()
static void
installEscapeConstant(char c, String value)
install a constant for escapes within strings i.e.
void
parse(Statement datum)
void
parseBlock(LinkedList data)
void
parseBlock(Token data)
void
parseIdea(Token data)
void
parseObject(Statement datum)
void
parseObject(Token data)
void
parseParameters(Token token)
Check
parsePredicate(Statement parsePred)
Check
parsePredicate(Token data)
void
parseSpecialParameters(Token token)
checks if the first token is potentially a class literal, if it is creates an object scalar for it.
Block
restore()

Field Details

BACKUP_BLOCKS

protected Stack BACKUP_BLOCKS

CURRENT_BLOCK

protected Block CURRENT_BLOCK

escape_constants

protected static HashMap escape_constants

parser

protected Parser parser

Constructor Details

CodeGenerator

public CodeGenerator(Parser _parser)

Method Details

add

public void add(Step n,
                Token token)

backup

public void backup()

getRunnableBlock

public Block getRunnableBlock()

installEscapeConstant

public static void installEscapeConstant(char c,
                                         String value)
install a constant for escapes within strings i.e. \n could be "\n"

parse

public void parse(Statement datum)

parseBlock

public void parseBlock(LinkedList data)

parseBlock

public void parseBlock(Token data)

parseIdea

public void parseIdea(Token data)

parseObject

public void parseObject(Statement datum)

parseObject

public void parseObject(Token data)

parseParameters

public void parseParameters(Token token)

parsePredicate

public Check parsePredicate(Statement parsePred)

parsePredicate

public Check parsePredicate(Token data)

parseSpecialParameters

public void parseSpecialParameters(Token token)
checks if the first token is potentially a class literal, if it is creates an object scalar for it. otherwise it is parsed as a normal literal idea

restore

public Block restore()