DCPU16_ASM.Assembler.Parser.ParseLiteralParameter C# (CSharp) Method

ParseLiteralParameter() public method

public ParseLiteralParameter ( OpcodeParamResult opcodeParamResult, string clearedParameter ) : OpcodeParamResult
opcodeParamResult OpcodeParamResult
clearedParameter string
return OpcodeParamResult
		public OpcodeParamResult ParseLiteralParameter (OpcodeParamResult opcodeParamResult, string clearedParameter)
		{
			ushort literalValue;
        	
        	if (clearedParameter.StartsWith("\'") && clearedParameter.EndsWith("\'") && clearedParameter.Length == 3)
        	{
        	    literalValue = clearedParameter[1];
        	}
        	else if (clearedParameter.Contains("0x"))
        	{
        	    literalValue = Convert.ToUInt16(clearedParameter, 16);
        	}
        	else if (clearedParameter.Trim().All(x => char.IsDigit(x)))
        	{
        	    literalValue = Convert.ToUInt16(clearedParameter, 10);
        	}
        	else
        	{
        	    opcodeParamResult.Param = (ushort)dcpuRegisterCodes.NextWord_Literal_Value;
        	    opcodeParamResult.NextWord = true;
        	    opcodeParamResult.LabelName = clearedParameter;
        	    return opcodeParamResult;
        	}

            ushort maxValue = 0x1F;
        		
        	if (literalValue < maxValue)
        	{
                opcodeParamResult.Param = 0x20;
        	    opcodeParamResult.Param += literalValue;
        	}
        	else
        	{
        	    opcodeParamResult.Param = (ushort)dcpuRegisterCodes.NextWord_Literal_Value;
        	    opcodeParamResult.NextWord = true;
        	    opcodeParamResult.NextWordValue = literalValue;
        	}
			
			return opcodeParamResult;
		}