txEvalNode* fxEvalNodeNew(txParser* parser, txToken token, txScope* scope) { txEvalNode* node = fxNewParserChunkClear(parser, sizeof(txEvalNode)); node->description = &gxTokenDescriptions[token]; node->scope = scope; return node; }
txDefineNode* fxDefineNodeNew(txParser* parser, txToken token, txSymbol* symbol) { txDefineNode* node = fxNewParserChunkClear(parser, sizeof(txDefineNode)); node->description = &gxTokenDescriptions[token]; node->symbol = symbol; return node; }
void fxInitializeParser(txParser* parser, void* console, txSize bufferSize, txSize symbolModulo) { c_memset(parser, 0, sizeof(txParser)); parser->first = C_NULL; parser->console = console; parser->buffer = fxNewParserChunk(parser, bufferSize); parser->bufferSize = bufferSize; parser->dtoa = fxNew_dtoa(); parser->symbolModulo = symbolModulo; parser->symbolTable = fxNewParserChunkClear(parser, parser->symbolModulo * sizeof(txSymbol*)); parser->emptyString = fxNewParserString(parser, "", 0); parser->ObjectSymbol = fxNewParserSymbol(parser, "Object"); parser->__dirnameSymbol = fxNewParserSymbol(parser, "__dirname"); parser->__filenameSymbol = fxNewParserSymbol(parser, "__filename"); parser->__proto__Symbol = fxNewParserSymbol(parser, "__proto__"); parser->allSymbol = fxNewParserSymbol(parser, "*"); parser->argsSymbol = fxNewParserSymbol(parser, "args"); parser->argumentsSymbol = fxNewParserSymbol(parser, "arguments"); parser->arrowSymbol = fxNewParserSymbol(parser, "=>"); parser->asSymbol = fxNewParserSymbol(parser, "as"); parser->constructorSymbol = fxNewParserSymbol(parser, "constructor"); parser->defaultSymbol = fxNewParserSymbol(parser, "*default*"); parser->doneSymbol = fxNewParserSymbol(parser, "done"); parser->evalSymbol = fxNewParserSymbol(parser, "eval"); parser->exportsSymbol = fxNewParserSymbol(parser, "exports"); parser->freezeSymbol = fxNewParserSymbol(parser, "freeze"); parser->fromSymbol = fxNewParserSymbol(parser, "from"); parser->getSymbol = fxNewParserSymbol(parser, "get"); parser->idSymbol = fxNewParserSymbol(parser, "id"); parser->includeSymbol = fxNewParserSymbol(parser, "include"); parser->lengthSymbol = fxNewParserSymbol(parser, "length"); parser->letSymbol = fxNewParserSymbol(parser, "let"); parser->moduleSymbol = fxNewParserSymbol(parser, "module"); parser->nextSymbol = fxNewParserSymbol(parser, "next"); parser->ofSymbol = fxNewParserSymbol(parser, "of"); parser->prototypeSymbol = fxNewParserSymbol(parser, "prototype"); parser->rawSymbol = fxNewParserSymbol(parser, "raw"); parser->RegExpSymbol = fxNewParserSymbol(parser, "RegExp"); parser->returnSymbol = fxNewParserSymbol(parser, "return"); parser->setSymbol = fxNewParserSymbol(parser, "set"); parser->sliceSymbol = fxNewParserSymbol(parser, "slice"); parser->thisSymbol = fxNewParserSymbol(parser, "this"); parser->targetSymbol = fxNewParserSymbol(parser, "target"); parser->toStringSymbol = fxNewParserSymbol(parser, "toString"); parser->undefinedSymbol = fxNewParserSymbol(parser, "undefined"); parser->uriSymbol = fxNewParserSymbol(parser, "uri"); parser->valueSymbol = fxNewParserSymbol(parser, "value"); parser->withSymbol = fxNewParserSymbol(parser, "with"); parser->yieldSymbol = fxNewParserSymbol(parser, "yield"); }
txLabelNode* fxLabelNodeNew(txParser* parser) { txLabelNode* node = fxNewParserChunkClear(parser, sizeof(txLabelNode)); return node; }
txNode* fxValueNodeNew(txParser* parser, txToken token) { txNode* node = fxNewParserChunkClear(parser, sizeof(txNode)); node->description = &gxTokenDescriptions[token]; return node; }