|  | @@ -8,10 +8,14 @@ package org.openzen.zenscript.parser.definitions;
 | 
		
	
		
			
			| 8 | 8 |  import java.util.ArrayList;
 | 
		
	
		
			
			| 9 | 9 |  import java.util.List;
 | 
		
	
		
			
			| 10 | 10 |  import org.openzen.zenscript.codemodel.member.EnumConstantMember;
 | 
		
	
		
			
			|  | 11 | +import org.openzen.zenscript.codemodel.type.DefinitionTypeID;
 | 
		
	
		
			
			| 11 | 12 |  import org.openzen.zenscript.lexer.ZSToken;
 | 
		
	
		
			
			| 12 | 13 |  import org.openzen.zenscript.lexer.ZSTokenStream;
 | 
		
	
		
			
			| 13 | 14 |  import org.openzen.zenscript.lexer.ZSTokenType;
 | 
		
	
		
			
			|  | 15 | +import org.openzen.zenscript.linker.ExpressionScope;
 | 
		
	
		
			
			|  | 16 | +import org.openzen.zenscript.parser.expression.ParsedCallArguments;
 | 
		
	
		
			
			| 14 | 17 |  import org.openzen.zenscript.parser.expression.ParsedExpression;
 | 
		
	
		
			
			|  | 18 | +import org.openzen.zenscript.parser.expression.ParsedNewExpression;
 | 
		
	
		
			
			| 15 | 19 |  import org.openzen.zenscript.shared.CodePosition;
 | 
		
	
		
			
			| 16 | 20 |  
 | 
		
	
		
			
			| 17 | 21 |  /**
 | 
		
	
	
		
			
			|  | @@ -19,7 +23,7 @@ import org.openzen.zenscript.shared.CodePosition;
 | 
		
	
		
			
			| 19 | 23 |   * @author Hoofdgebruiker
 | 
		
	
		
			
			| 20 | 24 |   */
 | 
		
	
		
			
			| 21 | 25 |  public class ParsedEnumConstant {
 | 
		
	
		
			
			| 22 |  | -	public static ParsedEnumConstant parse(ZSTokenStream tokens) {
 | 
		
	
		
			
			|  | 26 | +	public static ParsedEnumConstant parse(ZSTokenStream tokens, int value) {
 | 
		
	
		
			
			| 23 | 27 |  		ZSToken name = tokens.required(ZSTokenType.T_IDENTIFIER, "identifier expected");
 | 
		
	
		
			
			| 24 | 28 |  		List<ParsedExpression> arguments = new ArrayList<>();
 | 
		
	
		
			
			| 25 | 29 |  		if (tokens.optional(ZSTokenType.T_BROPEN) != null) {
 | 
		
	
	
		
			
			|  | @@ -29,7 +33,7 @@ public class ParsedEnumConstant {
 | 
		
	
		
			
			| 29 | 33 |  			tokens.required(ZSTokenType.T_BRCLOSE, ") expected");
 | 
		
	
		
			
			| 30 | 34 |  		}
 | 
		
	
		
			
			| 31 | 35 |  		
 | 
		
	
		
			
			| 32 |  | -		return new ParsedEnumConstant(name.position, name.content, arguments);
 | 
		
	
		
			
			|  | 36 | +		return new ParsedEnumConstant(name.position, name.content, value, arguments);
 | 
		
	
		
			
			| 33 | 37 |  	}
 | 
		
	
		
			
			| 34 | 38 |  	
 | 
		
	
		
			
			| 35 | 39 |  	public final CodePosition position;
 | 
		
	
	
		
			
			|  | @@ -38,11 +42,20 @@ public class ParsedEnumConstant {
 | 
		
	
		
			
			| 38 | 42 |  	
 | 
		
	
		
			
			| 39 | 43 |  	private final EnumConstantMember compiled;
 | 
		
	
		
			
			| 40 | 44 |  	
 | 
		
	
		
			
			| 41 |  | -	public ParsedEnumConstant(CodePosition position, String name, List<ParsedExpression> arguments) {
 | 
		
	
		
			
			|  | 45 | +	public ParsedEnumConstant(CodePosition position, String name, int value, List<ParsedExpression> arguments) {
 | 
		
	
		
			
			| 42 | 46 |  		this.position = position;
 | 
		
	
		
			
			| 43 | 47 |  		this.name = name;
 | 
		
	
		
			
			| 44 | 48 |  		this.arguments = arguments;
 | 
		
	
		
			
			| 45 | 49 |  		
 | 
		
	
		
			
			| 46 |  | -		compiled = new EnumConstantMember(position, name);
 | 
		
	
		
			
			|  | 50 | +		compiled = new EnumConstantMember(position, name, value);
 | 
		
	
		
			
			|  | 51 | +	}
 | 
		
	
		
			
			|  | 52 | +	
 | 
		
	
		
			
			|  | 53 | +	public EnumConstantMember getCompiled() {
 | 
		
	
		
			
			|  | 54 | +		return compiled;
 | 
		
	
		
			
			|  | 55 | +	}
 | 
		
	
		
			
			|  | 56 | +	
 | 
		
	
		
			
			|  | 57 | +	public void compileCode(DefinitionTypeID type, ExpressionScope scope) {
 | 
		
	
		
			
			|  | 58 | +		ParsedCallArguments arguments = new ParsedCallArguments(this.arguments);
 | 
		
	
		
			
			|  | 59 | +		compiled.constructor = ParsedNewExpression.compile(position, type, arguments, scope);
 | 
		
	
		
			
			| 47 | 60 |  	}
 | 
		
	
		
			
			| 48 | 61 |  }
 |