Removed extra parameter

This commit is contained in:
2022-08-19 17:56:35 +01:00
parent 16291bd1af
commit 9365541c8f

View File

@@ -106,7 +106,7 @@ typedef enum {
PREC_PRIMARY, PREC_PRIMARY,
} PrecedenceRule; } PrecedenceRule;
typedef Opcode (*ParseFn)(Parser* parser, Node** nodeHandle, bool canBeAssigned); typedef Opcode (*ParseFn)(Parser* parser, Node** nodeHandle);
typedef struct { typedef struct {
ParseFn prefix; ParseFn prefix;
@@ -121,7 +121,7 @@ static void declaration(Parser* parser, Node** nodeHandle);
static void parsePrecedence(Parser* parser, Node** nodeHandle, PrecedenceRule rule); static void parsePrecedence(Parser* parser, Node** nodeHandle, PrecedenceRule rule);
//the expression rules //the expression rules
static Opcode compound(Parser* parser, Node** nodeHandle, bool canBeAssigned) { static Opcode compound(Parser* parser, Node** nodeHandle) {
//read either an array or a dictionary into a literal node //read either an array or a dictionary into a literal node
int iterations = 0; //count the number of entries iterated over int iterations = 0; //count the number of entries iterated over
@@ -234,7 +234,7 @@ static Opcode compound(Parser* parser, Node** nodeHandle, bool canBeAssigned) {
return OP_EOF; return OP_EOF;
} }
static Opcode string(Parser* parser, Node** nodeHandle, bool canBeAssigned) { static Opcode string(Parser* parser, Node** nodeHandle) {
//handle strings //handle strings
switch(parser->previous.type) { switch(parser->previous.type) {
case TOKEN_LITERAL_STRING: { case TOKEN_LITERAL_STRING: {
@@ -258,7 +258,7 @@ static Opcode string(Parser* parser, Node** nodeHandle, bool canBeAssigned) {
} }
} }
static Opcode grouping(Parser* parser, Node** nodeHandle, bool canBeAssigned) { static Opcode grouping(Parser* parser, Node** nodeHandle) {
//handle groupings with () //handle groupings with ()
switch(parser->previous.type) { switch(parser->previous.type) {
case TOKEN_PAREN_LEFT: { case TOKEN_PAREN_LEFT: {
@@ -285,7 +285,7 @@ static Opcode grouping(Parser* parser, Node** nodeHandle, bool canBeAssigned) {
} }
} }
static Opcode binary(Parser* parser, Node** nodeHandle, bool canBeAssigned) { static Opcode binary(Parser* parser, Node** nodeHandle) {
advance(parser); advance(parser);
//binary() is an infix rule - so only get the RHS of the operator //binary() is an infix rule - so only get the RHS of the operator
@@ -326,7 +326,7 @@ static Opcode binary(Parser* parser, Node** nodeHandle, bool canBeAssigned) {
} }
} }
static Opcode unary(Parser* parser, Node** nodeHandle, bool canBeAssigned) { static Opcode unary(Parser* parser, Node** nodeHandle) {
switch(parser->previous.type) { switch(parser->previous.type) {
case TOKEN_MINUS: { case TOKEN_MINUS: {
//temp handle to potentially negate values //temp handle to potentially negate values
@@ -370,7 +370,7 @@ static Opcode unary(Parser* parser, Node** nodeHandle, bool canBeAssigned) {
} }
} }
static Opcode atomic(Parser* parser, Node** nodeHandle, bool canBeAssigned) { static Opcode atomic(Parser* parser, Node** nodeHandle) {
switch(parser->previous.type) { switch(parser->previous.type) {
case TOKEN_NULL: case TOKEN_NULL:
emitNodeLiteral(nodeHandle, TO_NULL_LITERAL); emitNodeLiteral(nodeHandle, TO_NULL_LITERAL);
@@ -404,7 +404,7 @@ static Opcode atomic(Parser* parser, Node** nodeHandle, bool canBeAssigned) {
} }
} }
static Opcode identifier(Parser* parser, Node** nodeHandle, bool canBeAssigned) { static Opcode identifier(Parser* parser, Node** nodeHandle) {
//make a copy of the string //make a copy of the string
Token identifierToken = parser->previous; Token identifierToken = parser->previous;
@@ -656,7 +656,7 @@ static void parsePrecedence(Parser* parser, Node** nodeHandle, PrecedenceRule ru
} }
bool canBeAssigned = rule <= PREC_ASSIGNMENT; bool canBeAssigned = rule <= PREC_ASSIGNMENT;
prefixRule(parser, nodeHandle, canBeAssigned); //ignore the returned opcode prefixRule(parser, nodeHandle); //ignore the returned opcode
//infix rules are left-recursive //infix rules are left-recursive
while (rule <= getRule(parser->current.type)->precedence) { while (rule <= getRule(parser->current.type)->precedence) {
@@ -669,7 +669,7 @@ static void parsePrecedence(Parser* parser, Node** nodeHandle, PrecedenceRule ru
} }
Node* rhsNode = NULL; Node* rhsNode = NULL;
const Opcode opcode = infixRule(parser, &rhsNode, canBeAssigned); //NOTE: infix rule must advance the parser const Opcode opcode = infixRule(parser, &rhsNode); //NOTE: infix rule must advance the parser
emitNodeBinary(nodeHandle, rhsNode, opcode); emitNodeBinary(nodeHandle, rhsNode, opcode);
if (command.optimize >= 1 && !calcStaticBinaryArithmetic(parser, nodeHandle)) { if (command.optimize >= 1 && !calcStaticBinaryArithmetic(parser, nodeHandle)) {