|  | @@ -46,15 +46,16 @@ static int forWhileStack = 0;
 | 
	
		
			
				|  |  |  static int continueAt = 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  typedef struct {
 | 
	
		
			
				|  |  | +    const char* name;
 | 
	
		
			
				|  |  |      Operation intOp;
 | 
	
		
			
				|  |  |      Operation floatOp;
 | 
	
		
			
				|  |  |      Operation pointerOp;
 | 
	
		
			
				|  |  | -    const char* name;
 | 
	
		
			
				|  |  | +    char padding[sizeof(Operation)];
 | 
	
		
			
				|  |  |  } TypedOp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #define TYPE_OP(NAME, FLOAT, POINTER, text)                                    \
 | 
	
		
			
				|  |  | -    static const TypedOp TYPED_##NAME = {OP_##NAME##_INT, OP_##FLOAT,          \
 | 
	
		
			
				|  |  | -                                         OP_##POINTER, text};
 | 
	
		
			
				|  |  | +    static const TypedOp TYPED_##NAME = {                                      \
 | 
	
		
			
				|  |  | +        text, OP_##NAME##_INT, OP_##FLOAT, OP_##POINTER, {0}};
 | 
	
		
			
				|  |  |  TYPE_OP(MUL, MUL_FLOAT, NOTHING, "*")
 | 
	
		
			
				|  |  |  TYPE_OP(DIV, DIV_FLOAT, NOTHING, "/")
 | 
	
		
			
				|  |  |  TYPE_OP(MOD, NOTHING, NOTHING, "%")
 | 
	
	
		
			
				|  | @@ -96,7 +97,7 @@ static void cDeclared(const char* name) {
 | 
	
		
			
				|  |  |      cError("%s has already been declared", name);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cTooMuchArguments() {
 | 
	
		
			
				|  |  | +static void cTooMuchArguments(void) {
 | 
	
		
			
				|  |  |      cError("too much function arguments");
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -111,8 +112,8 @@ static void cUnknownFunction(Function* f) {
 | 
	
		
			
				|  |  |      char buffer[BUFFER_SIZE] = {'\0'};
 | 
	
		
			
				|  |  |      for(int i = 0; i < f->arguments; i++) {
 | 
	
		
			
				|  |  |          const char* name = dtGetName(&structs, f->argumentTypes[i]);
 | 
	
		
			
				|  |  | -        max += snprintf(buffer + max, BUFFER_SIZE - max, i > 0 ? ", %s" : "%s",
 | 
	
		
			
				|  |  | -                        name);
 | 
	
		
			
				|  |  | +        max += snprintf(buffer + max, (size_t)(BUFFER_SIZE - max),
 | 
	
		
			
				|  |  | +                        i > 0 ? ", %s" : "%s", name);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      cError("unknown function: %s(%s)", f->name, buffer);
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -122,7 +123,7 @@ static void cAddOperation(Operation token) {
 | 
	
		
			
				|  |  |      bcAddBytes(code, &c, 1);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static int32 cReserveInt32() {
 | 
	
		
			
				|  |  | +static int32 cReserveInt32(void) {
 | 
	
		
			
				|  |  |      return bcReserveBytes(code, sizeof(int32));
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -144,12 +145,12 @@ static void cAddByteOperation(Operation token, int8 i) {
 | 
	
		
			
				|  |  |      bcAddBytes(code, &i, sizeof(int8));
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cAddLine(int16 line) {
 | 
	
		
			
				|  |  | +static void cAddLine(int16 l) {
 | 
	
		
			
				|  |  |      cAddOperation(OP_LINE);
 | 
	
		
			
				|  |  | -    bcAddBytes(code, &line, sizeof(int16));
 | 
	
		
			
				|  |  | +    bcAddBytes(code, &l, sizeof(int16));
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static Token cReadTokenAndLine() {
 | 
	
		
			
				|  |  | +static Token cReadTokenAndLine(void) {
 | 
	
		
			
				|  |  |      hasReturn--;
 | 
	
		
			
				|  |  |      Token t;
 | 
	
		
			
				|  |  |      if(tReadTokenAndLine(&t, &line)) {
 | 
	
	
		
			
				|  | @@ -169,7 +170,7 @@ static bool cConsumeTokenIf(Token t) {
 | 
	
		
			
				|  |  |      return tPeekToken() == t && cReadTokenAndLine() == t;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cConstantInt32() {
 | 
	
		
			
				|  |  | +static void cConstantInt32(void) {
 | 
	
		
			
				|  |  |      int32 value;
 | 
	
		
			
				|  |  |      if(tReadInt32(&value)) {
 | 
	
		
			
				|  |  |          cError("int token without an int");
 | 
	
	
		
			
				|  | @@ -177,7 +178,7 @@ static void cConstantInt32() {
 | 
	
		
			
				|  |  |      cAddInt32Operation(OP_PUSH_INT, value);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cConstantFloat() {
 | 
	
		
			
				|  |  | +static void cConstantFloat(void) {
 | 
	
		
			
				|  |  |      float value;
 | 
	
		
			
				|  |  |      if(tReadFloat(&value)) {
 | 
	
		
			
				|  |  |          cError("float token without a float");
 | 
	
	
		
			
				|  | @@ -186,7 +187,7 @@ static void cConstantFloat() {
 | 
	
		
			
				|  |  |      bcAddBytes(code, &value, sizeof(float));
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static const char* cReadString() {
 | 
	
		
			
				|  |  | +static const char* cReadString(void) {
 | 
	
		
			
				|  |  |      const char* literal = tReadString();
 | 
	
		
			
				|  |  |      if(literal == NULL) {
 | 
	
		
			
				|  |  |          cError("literal without string on line %d", line);
 | 
	
	
		
			
				|  | @@ -237,7 +238,7 @@ static DataType cReadExtendedType(Token t, bool force) {
 | 
	
		
			
				|  |  |      return dt;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cExpression();
 | 
	
		
			
				|  |  | +static DataType cExpression(void);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void cLoadRef(DataType type) {
 | 
	
		
			
				|  |  |      if(dtIsArray(type)) {
 | 
	
	
		
			
				|  | @@ -257,7 +258,7 @@ static DataType cUnpack(DataType dt) {
 | 
	
		
			
				|  |  |      return dt;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cUnpackedExpression() {
 | 
	
		
			
				|  |  | +static DataType cUnpackedExpression(void) {
 | 
	
		
			
				|  |  |      return cUnpack(cExpression());
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -322,7 +323,7 @@ static void cStore(DataType left, DataType right, const char* name) {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cLiteral() {
 | 
	
		
			
				|  |  | +static DataType cLiteral(void) {
 | 
	
		
			
				|  |  |      const char* literal = cReadString();
 | 
	
		
			
				|  |  |      if(cConsumeTokenIf(T_OPEN_BRACKET)) {
 | 
	
		
			
				|  |  |          return cCallFunction(literal);
 | 
	
	
		
			
				|  | @@ -347,7 +348,7 @@ static DataType cLiteral() {
 | 
	
		
			
				|  |  |      return dtVoid();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cText() {
 | 
	
		
			
				|  |  | +static DataType cText(void) {
 | 
	
		
			
				|  |  |      cAddOperation(OP_PUSH_TEXT);
 | 
	
		
			
				|  |  |      int32 lengthAddress = cReserveInt32();
 | 
	
		
			
				|  |  |      int32 length = 0;
 | 
	
	
		
			
				|  | @@ -360,19 +361,19 @@ static DataType cText() {
 | 
	
		
			
				|  |  |      return dtText();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cBracketPrimary() {
 | 
	
		
			
				|  |  | +static DataType cBracketPrimary(void) {
 | 
	
		
			
				|  |  |      DataType result = cExpression();
 | 
	
		
			
				|  |  |      cConsumeToken(T_CLOSE_BRACKET);
 | 
	
		
			
				|  |  |      return result;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cArrayIndex() {
 | 
	
		
			
				|  |  | +static void cArrayIndex(void) {
 | 
	
		
			
				|  |  |      if(!dtIsInt(cUnpackedExpression())) {
 | 
	
		
			
				|  |  |          cError("array index must be an int");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cAllocArray() {
 | 
	
		
			
				|  |  | +static DataType cAllocArray(void) {
 | 
	
		
			
				|  |  |      DataType dt = cReadType(cReadTokenAndLine(), true);
 | 
	
		
			
				|  |  |      if(dt.array != 0) {
 | 
	
		
			
				|  |  |          cError("array type must not be an array");
 | 
	
	
		
			
				|  | @@ -384,7 +385,7 @@ static DataType cAllocArray() {
 | 
	
		
			
				|  |  |      return dtToArray(dt);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cLength() {
 | 
	
		
			
				|  |  | +static DataType cLength(void) {
 | 
	
		
			
				|  |  |      DataType array = cUnpackedExpression();
 | 
	
		
			
				|  |  |      if(!dtIsArray(array)) {
 | 
	
		
			
				|  |  |          cError("length expects an array");
 | 
	
	
		
			
				|  | @@ -393,7 +394,7 @@ static DataType cLength() {
 | 
	
		
			
				|  |  |      return dtInt();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cPrimary() {
 | 
	
		
			
				|  |  | +static DataType cPrimary(void) {
 | 
	
		
			
				|  |  |      Token t = cReadTokenAndLine();
 | 
	
		
			
				|  |  |      switch(t) {
 | 
	
		
			
				|  |  |          case T_INT_VALUE: cConstantInt32(); return dtInt();
 | 
	
	
		
			
				|  | @@ -420,7 +421,7 @@ static void cExpectType(DataType actual, DataType wanted, const char* name) {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void cChangeType(DataType* dt, Operation op, Operation pushOp,
 | 
	
		
			
				|  |  | -                        int change) {
 | 
	
		
			
				|  |  | +                        int8 change) {
 | 
	
		
			
				|  |  |      if(onLine) {
 | 
	
		
			
				|  |  |          cAddByteOperation(op, change);
 | 
	
		
			
				|  |  |          *dt = dtVoid();
 | 
	
	
		
			
				|  | @@ -429,7 +430,7 @@ static void cChangeType(DataType* dt, Operation op, Operation pushOp,
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cPostChange(DataType* dt, int change, const char* name) {
 | 
	
		
			
				|  |  | +static void cPostChange(DataType* dt, int8 change, const char* name) {
 | 
	
		
			
				|  |  |      cRemoveReference(dt, name);
 | 
	
		
			
				|  |  |      if(dtIsInt(*dt)) {
 | 
	
		
			
				|  |  |          cChangeType(dt, OP_CHANGE_INT, OP_PUSH_POST_CHANGE_INT, change);
 | 
	
	
		
			
				|  | @@ -455,7 +456,7 @@ static DataType cStructAccess(DataType dt) {
 | 
	
		
			
				|  |  |      return dtToPointer(inner.type);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cAccess() {
 | 
	
		
			
				|  |  | +static DataType cAccess(void) {
 | 
	
		
			
				|  |  |      DataType dt = cPrimary();
 | 
	
		
			
				|  |  |      while(true) {
 | 
	
		
			
				|  |  |          if(cConsumeTokenIf(T_INCREMENT)) {
 | 
	
	
		
			
				|  | @@ -471,7 +472,7 @@ static DataType cAccess() {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              cAddOperation(OP_LOAD_ARRAY);
 | 
	
		
			
				|  |  |              dtRemovePointer(&dt);
 | 
	
		
			
				|  |  | -            cArrayIndex("index");
 | 
	
		
			
				|  |  | +            cArrayIndex();
 | 
	
		
			
				|  |  |              cConsumeToken(T_CLOSE_SQUARE_BRACKET);
 | 
	
		
			
				|  |  |              cAddInt32Operation(OP_ADD_REFERENCE, cGetSize(dt));
 | 
	
		
			
				|  |  |              dt = dtToPointer(dtRemoveArray(dt));
 | 
	
	
		
			
				|  | @@ -481,7 +482,7 @@ static DataType cAccess() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cPreChange(DataType dt, int change, const char* name) {
 | 
	
		
			
				|  |  | +static DataType cPreChange(DataType dt, int8 change, const char* name) {
 | 
	
		
			
				|  |  |      cRemoveReference(&dt, name);
 | 
	
		
			
				|  |  |      if(dtIsInt(dt)) {
 | 
	
		
			
				|  |  |          cChangeType(&dt, OP_CHANGE_INT, OP_PUSH_PRE_CHANGE_INT, change);
 | 
	
	
		
			
				|  | @@ -526,7 +527,7 @@ static DataType cUnaryBitNot(DataType dt) {
 | 
	
		
			
				|  |  |      return dt;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cPreUnary() {
 | 
	
		
			
				|  |  | +static DataType cPreUnary(void) {
 | 
	
		
			
				|  |  |      int marker = tGetMarker();
 | 
	
		
			
				|  |  |      if(cConsumeTokenIf(T_OPEN_BRACKET)) {
 | 
	
		
			
				|  |  |          if(cConsumeTokenIf(T_FLOAT) && cConsumeTokenIf(T_CLOSE_BRACKET)) {
 | 
	
	
		
			
				|  | @@ -568,7 +569,7 @@ static void cAddTypeOperation(DataType* a, Parser bf, const TypedOp* op) {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cMul() {
 | 
	
		
			
				|  |  | +static DataType cMul(void) {
 | 
	
		
			
				|  |  |      DataType a = cPreUnary();
 | 
	
		
			
				|  |  |      while(true) {
 | 
	
		
			
				|  |  |          if(cConsumeTokenIf(T_MUL)) {
 | 
	
	
		
			
				|  | @@ -583,7 +584,7 @@ static DataType cMul() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cAdd() {
 | 
	
		
			
				|  |  | +static DataType cAdd(void) {
 | 
	
		
			
				|  |  |      DataType a = cMul();
 | 
	
		
			
				|  |  |      while(true) {
 | 
	
		
			
				|  |  |          if(cConsumeTokenIf(T_ADD)) {
 | 
	
	
		
			
				|  | @@ -596,7 +597,7 @@ static DataType cAdd() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cShift() {
 | 
	
		
			
				|  |  | +static DataType cShift(void) {
 | 
	
		
			
				|  |  |      DataType a = cAdd();
 | 
	
		
			
				|  |  |      while(true) {
 | 
	
		
			
				|  |  |          if(cConsumeTokenIf(T_LEFT_SHIFT)) {
 | 
	
	
		
			
				|  | @@ -609,7 +610,7 @@ static DataType cShift() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cComparison() {
 | 
	
		
			
				|  |  | +static DataType cComparison(void) {
 | 
	
		
			
				|  |  |      DataType a = cShift();
 | 
	
		
			
				|  |  |      while(true) {
 | 
	
		
			
				|  |  |          if(cConsumeTokenIf(T_LESS)) {
 | 
	
	
		
			
				|  | @@ -630,7 +631,7 @@ static DataType cComparison() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cEqual() {
 | 
	
		
			
				|  |  | +static DataType cEqual(void) {
 | 
	
		
			
				|  |  |      DataType a = cComparison();
 | 
	
		
			
				|  |  |      while(true) {
 | 
	
		
			
				|  |  |          if(cConsumeTokenIf(T_EQUAL)) {
 | 
	
	
		
			
				|  | @@ -653,15 +654,15 @@ static DataType cRepeat(Token t, Parser f, const TypedOp* op) {
 | 
	
		
			
				|  |  |      return a;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cBitAnd() {
 | 
	
		
			
				|  |  | +static DataType cBitAnd(void) {
 | 
	
		
			
				|  |  |      return cRepeat(T_BIT_AND, cEqual, &TYPED_BIT_AND);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cBitXor() {
 | 
	
		
			
				|  |  | +static DataType cBitXor(void) {
 | 
	
		
			
				|  |  |      return cRepeat(T_BIT_XOR, cBitAnd, &TYPED_BIT_XOR);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cBitOr() {
 | 
	
		
			
				|  |  | +static DataType cBitOr(void) {
 | 
	
		
			
				|  |  |      return cRepeat(T_BIT_OR, cBitXor, &TYPED_BIT_OR);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -680,18 +681,18 @@ static DataType cLogical(Parser f, Token t, Operation jump, Operation op) {
 | 
	
		
			
				|  |  |      return a;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cAnd() {
 | 
	
		
			
				|  |  | +static DataType cAnd(void) {
 | 
	
		
			
				|  |  |      return cLogical(cBitOr, T_AND, OP_PEEK_FALSE_GOTO, OP_AND);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static DataType cExpression() {
 | 
	
		
			
				|  |  | +static DataType cExpression(void) {
 | 
	
		
			
				|  |  |      return cLogical(cAnd, T_OR, OP_PEEK_TRUE_GOTO, OP_OR);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cLine();
 | 
	
		
			
				|  |  | +static void cLine(void);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cConsumeBody() {
 | 
	
		
			
				|  |  | -    int oldLine = line;
 | 
	
		
			
				|  |  | +static void cConsumeBody(void) {
 | 
	
		
			
				|  |  | +    int16 oldLine = line;
 | 
	
		
			
				|  |  |      while(!cConsumeTokenIf(T_CLOSE_CURVED_BRACKET)) {
 | 
	
		
			
				|  |  |          if(tPeekToken() == T_END) {
 | 
	
		
			
				|  |  |              line = oldLine;
 | 
	
	
		
			
				|  | @@ -701,7 +702,7 @@ static void cConsumeBody() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cConsumeScope() {
 | 
	
		
			
				|  |  | +static void cConsumeScope(void) {
 | 
	
		
			
				|  |  |      Scope scope;
 | 
	
		
			
				|  |  |      vsEnterScope(&vars, &scope);
 | 
	
		
			
				|  |  |      cConsumeBody();
 | 
	
	
		
			
				|  | @@ -716,7 +717,7 @@ static void cAddReturn(Operation op) {
 | 
	
		
			
				|  |  |      returns[returnIndex++] = cReserveInt32();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cReturn() {
 | 
	
		
			
				|  |  | +static void cReturn(void) {
 | 
	
		
			
				|  |  |      if(dtIsVoid(returnType)) {
 | 
	
		
			
				|  |  |          cConsumeToken(T_SEMICOLON);
 | 
	
		
			
				|  |  |          cAddReturn(OP_RETURN);
 | 
	
	
		
			
				|  | @@ -739,7 +740,7 @@ static void cReturn() {
 | 
	
		
			
				|  |  |      hasReturn = 2;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cIf() {
 | 
	
		
			
				|  |  | +static void cIf(void) {
 | 
	
		
			
				|  |  |      cConsumeToken(T_OPEN_BRACKET);
 | 
	
		
			
				|  |  |      cExpectType(cExpression(), dtInt(), "if");
 | 
	
		
			
				|  |  |      cConsumeToken(T_CLOSE_BRACKET);
 | 
	
	
		
			
				|  | @@ -769,7 +770,7 @@ static void cConsumeBreaks(int start, int address) {
 | 
	
		
			
				|  |  |      breakIndex = start;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cWhile() {
 | 
	
		
			
				|  |  | +static void cWhile(void) {
 | 
	
		
			
				|  |  |      int start = code->length;
 | 
	
		
			
				|  |  |      cConsumeToken(T_OPEN_BRACKET);
 | 
	
		
			
				|  |  |      cExpectType(cExpression(), dtInt(), "while");
 | 
	
	
		
			
				|  | @@ -796,7 +797,7 @@ static void cOperationSet(DataType left, const TypedOp* op) {
 | 
	
		
			
				|  |  |      cStore(left, left, "=");
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cSetVariable() {
 | 
	
		
			
				|  |  | +static void cSetVariable(void) {
 | 
	
		
			
				|  |  |      onLine = true;
 | 
	
		
			
				|  |  |      DataType dt = cPreUnary();
 | 
	
		
			
				|  |  |      onLine = false;
 | 
	
	
		
			
				|  | @@ -846,7 +847,7 @@ static bool cDeclaration(Token t) {
 | 
	
		
			
				|  |  |      return true;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cLineExpression() {
 | 
	
		
			
				|  |  | +static void cLineExpression(void) {
 | 
	
		
			
				|  |  |      int marker = tGetMarker();
 | 
	
		
			
				|  |  |      Token t = cReadTokenAndLine();
 | 
	
		
			
				|  |  |      if(cDeclaration(t)) {
 | 
	
	
		
			
				|  | @@ -856,7 +857,7 @@ static void cLineExpression() {
 | 
	
		
			
				|  |  |      cSetVariable();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cFor() {
 | 
	
		
			
				|  |  | +static void cFor(void) {
 | 
	
		
			
				|  |  |      Scope scope;
 | 
	
		
			
				|  |  |      vsEnterScope(&vars, &scope);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -890,7 +891,7 @@ static void cFor() {
 | 
	
		
			
				|  |  |      vsLeaveScope(&vars, &scope);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cBreak() {
 | 
	
		
			
				|  |  | +static void cBreak(void) {
 | 
	
		
			
				|  |  |      if(forWhileStack == 0) {
 | 
	
		
			
				|  |  |          cError("break without for or while");
 | 
	
		
			
				|  |  |      } else if(breakIndex >= BREAK_BUFFER) {
 | 
	
	
		
			
				|  | @@ -901,7 +902,7 @@ static void cBreak() {
 | 
	
		
			
				|  |  |      cConsumeToken(T_SEMICOLON);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cContinue() {
 | 
	
		
			
				|  |  | +static void cContinue(void) {
 | 
	
		
			
				|  |  |      if(forWhileStack == 0) {
 | 
	
		
			
				|  |  |          cError("continue without for or while");
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -909,7 +910,7 @@ static void cContinue() {
 | 
	
		
			
				|  |  |      cConsumeToken(T_SEMICOLON);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cLine() {
 | 
	
		
			
				|  |  | +static void cLine(void) {
 | 
	
		
			
				|  |  |      int marker = tGetMarker();
 | 
	
		
			
				|  |  |      Token t = cReadTokenAndLine();
 | 
	
		
			
				|  |  |      cAddLine(line);
 | 
	
	
		
			
				|  | @@ -928,11 +929,11 @@ static void cLine() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cBuildFunction(Function* f, DataType rType, const char* name) {
 | 
	
		
			
				|  |  | +static void cBuildFunction(Function* f, DataType rType, const char* fName) {
 | 
	
		
			
				|  |  |      if(rType.type == DT_STRUCT && rType.array == 0) {
 | 
	
		
			
				|  |  |          cError("structs cannot be returned");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    fInit(f, name, line);
 | 
	
		
			
				|  |  | +    fInit(f, fName, line);
 | 
	
		
			
				|  |  |      f->returnType = rType;
 | 
	
		
			
				|  |  |      vsReset(&vars);
 | 
	
		
			
				|  |  |      cConsumeToken(T_OPEN_BRACKET);
 | 
	
	
		
			
				|  | @@ -1009,7 +1010,7 @@ static void cFunction(DataType rType, const char* name) {
 | 
	
		
			
				|  |  |      cSetInt32(end, code->length);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cStruct() {
 | 
	
		
			
				|  |  | +static void cStruct(void) {
 | 
	
		
			
				|  |  |      cConsumeToken(T_LITERAL);
 | 
	
		
			
				|  |  |      const char* name = cReadString();
 | 
	
		
			
				|  |  |      if(stsSearch(&structs, name) != NULL) {
 | 
	
	
		
			
				|  | @@ -1057,7 +1058,7 @@ static void cGlobalScope(Token t) {
 | 
	
		
			
				|  |  |      cConsumeToken(T_SEMICOLON);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cCallMain() {
 | 
	
		
			
				|  |  | +static void cCallMain(void) {
 | 
	
		
			
				|  |  |      Function f;
 | 
	
		
			
				|  |  |      fInit(&f, "main", line);
 | 
	
		
			
				|  |  |      Function* found = fsSearch(&functions, &f);
 | 
	
	
		
			
				|  | @@ -1068,7 +1069,7 @@ static void cCallMain() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cForEachLine() {
 | 
	
		
			
				|  |  | +static void cForEachLine(void) {
 | 
	
		
			
				|  |  |      cAddOperation(OP_GRESERVE);
 | 
	
		
			
				|  |  |      int p = cReserveInt32();
 | 
	
		
			
				|  |  |      while(true) {
 | 
	
	
		
			
				|  | @@ -1083,7 +1084,7 @@ static void cForEachLine() {
 | 
	
		
			
				|  |  |      cAddInt32Operation(OP_GRESERVE, -globalVars.maxAddress);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cLinkQueuedFunctions() {
 | 
	
		
			
				|  |  | +static void cLinkQueuedFunctions(void) {
 | 
	
		
			
				|  |  |      for(int i = 0; i < functionQueue.entries; i++) {
 | 
	
		
			
				|  |  |          Function* f = functionQueue.data + i;
 | 
	
		
			
				|  |  |          Function* found = fsSearch(&functions, f);
 | 
	
	
		
			
				|  | @@ -1095,7 +1096,7 @@ static void cLinkQueuedFunctions() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void cAllocAndCompile() {
 | 
	
		
			
				|  |  | +static void cAllocAndCompile(void) {
 | 
	
		
			
				|  |  |      forWhileStack = 0;
 | 
	
		
			
				|  |  |      breakIndex = 0;
 | 
	
		
			
				|  |  |      returnType = dtVoid();
 |