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

ParseParam() private method

private ParseParam ( string param ) : OpcodeParamResult
param string
return OpcodeParamResult
        private OpcodeParamResult ParseParam(string param)
        {
            var opcodeParamResult = new OpcodeParamResult();

            var clearedParameter = param.Replace(" ", string.Empty).Trim();

            if (this.registerDictionary.ContainsKey(clearedParameter))
            {
                opcodeParamResult.Param = (ushort)this.registerDictionary[clearedParameter];
            }
            else
            {
                if ((clearedParameter.StartsWith("[") || clearedParameter.StartsWith("("))  && (clearedParameter.EndsWith("]") || clearedParameter.EndsWith(")")))
                {
					clearedParameter = clearedParameter.Substring(1, clearedParameter.Length - 2).Replace(" ", string.Empty);
						
                    if (clearedParameter.Contains("+"))
                    {
						opcodeParamResult = ParseMemoryAddressPlusRegisterParameter(opcodeParamResult, clearedParameter);
                    }
                    else
                    {
                        opcodeParamResult = ParseMemoryAddressParameter(opcodeParamResult, clearedParameter);
                    }
                }
                else
                {
					ParseLiteralParameter (opcodeParamResult, clearedParameter);
                }
            }

            return opcodeParamResult;
        }