Inheritance: MonoBehaviour
Exemple #1
0
        public override void Generate(ILGenerator generator, Symbols symbols)
        {
            //Save the previous variables
            var currentVariables = new List<string>();
            foreach (var item in symbols.Variables)
            {
                currentVariables.Add(item.Key);
                generator.Emit(OpCodes.Ldsfld, symbols.Variables[item.Key]);
            }

            DeclarationBlock.Generate(generator, symbols);
            InstructionsBlock.Generate(generator, symbols);

            LocalBuilder returnValue = null;
            if (InstructionsBlock.ExpressionType.Type != TypesEnumeration.Void)
            {
                returnValue = generator.DeclareLocal(symbols.GetRealType(InstructionsBlock.ExpressionType.ILName));
                generator.Emit(OpCodes.Stloc, returnValue);
            }

            currentVariables.Reverse();
            //load in the variables it's previous values
            currentVariables.ForEach(x => generator.Emit(OpCodes.Stsfld, symbols.Variables[x]));
            if (InstructionsBlock.ExpressionType.Type != TypesEnumeration.Void)
                generator.Emit(OpCodes.Ldloc, returnValue);
        }
 private static IReadOnlyDictionary<AnonymousTypeKey, AnonymousTypeValue> GetAnonymousTypeMap(
     MetadataReader reader,
     Symbols.Metadata.PE.MetadataDecoder metadataDecoder)
 {
     var result = new Dictionary<AnonymousTypeKey, AnonymousTypeValue>();
     foreach (var handle in reader.TypeDefinitions)
     {
         var def = reader.GetTypeDefinition(handle);
         if (!def.Namespace.IsNil)
         {
             continue;
         }
         if (!reader.StringStartsWith(def.Name, GeneratedNames.AnonymousNamePrefix))
         {
             continue;
         }
         var metadataName = reader.GetString(def.Name);
         short arity;
         var name = MetadataHelpers.InferTypeArityAndUnmangleMetadataName(metadataName, out arity);
         int index;
         if (GeneratedNames.TryParseAnonymousTypeTemplateName(name, out index))
         {
             var builder = ArrayBuilder<string>.GetInstance();
             if (TryGetAnonymousTypeKey(reader, def, builder))
             {
                 var type = (NamedTypeSymbol)metadataDecoder.GetTypeOfToken(handle);
                 var key = new AnonymousTypeKey(builder.ToImmutable());
                 var value = new AnonymousTypeValue(name, index, type);
                 result.Add(key, value);
             }
             builder.Free();
         }
     }
     return result;
 }
 public override void Generate(ILGenerator generator, Symbols symbols)
 {
     if (symbols.Records.ContainsKey(Alias.ILName))
         symbols.Records.Add(Identifier.ILName, symbols.Records[Alias.ILName]);
     else
         symbols.ArraysTypes.Add(Identifier.ILName, symbols.ArraysTypes[Alias.ILName]);
 }
 public void BindFixtureSymbols(Symbols symbols, DbCommand dc)
 {
     foreach (String paramName in ExtractParamNames(dc.CommandText))
     {
         AddInput(dc, paramName, symbols.GetValueOrDefault(paramName, null));
     }
 }
Exemple #5
0
        public override void Generate(ILGenerator generator, Symbols s)
        {
            var Is_False = generator.DefineLabel();
            var End = generator.DefineLabel();

            LeftOperand.Generate(generator, s);
            //Pregunto si hay un 0 en el tope d la pila
            generator.Emit(OpCodes.Ldc_I4_0);
            //Si es verdad salto para la etiqueta es falso
            generator.Emit(OpCodes.Beq, Is_False);

            RightOperand.Generate(generator, s);
            //Pregunto si hay un 0 en el tope d la pila
            generator.Emit(OpCodes.Ldc_I4_0);
            //Si es verdad salto para la etiqueta es falso
            generator.Emit(OpCodes.Beq, Is_False);
            //Si hay un 1 en el tope es porque no salte para el label que me dice si hay algun false ,
            //por lo q el primer operando es true y entonces es true el and
            generator.Emit(OpCodes.Ldc_I4_1);

            generator.Emit(OpCodes.Br, End);

            generator.MarkLabel(Is_False);

            generator.Emit(OpCodes.Ldc_I4_0);
            generator.MarkLabel(End);
        }
 public override void Generate(ILGenerator generator, Symbols symbols)
 {
     for (int i = 0; i < Count; i++)
     {
         this[i].Generate(generator, symbols);
         if (i < Count - 1 && this[i].ExpressionType.Type != TypesEnumeration.Void) generator.Emit(OpCodes.Pop);
     }
 }
Exemple #7
0
        public override void Generate(ILGenerator generator, Symbols symbols)
        {
            Index.Generate(generator, symbols);
            generator.Emit(OpCodes.Ldelem, symbols.GetRealType(Index.ILName));

            if (NextNested != null)
                NextNested.Generate(generator, symbols);
        }
Exemple #8
0
        public void SetUp()
        {
            symbols = A.Fake<Symbols>();
              tokenizer = A.Fake<Tokenizer>();
              executor = A.Fake<Executor>();

              sut = new Interpreter(symbols, tokenizer, executor);
        }
Exemple #9
0
        public void SetUp()
        {
            sut = new StatementRunner();

              symbols = new SymbolsTable();
              core = A.Fake<WebCoreRepository>();
              context = new Context(symbols, core);
        }
Exemple #10
0
        public override void Generate(ILGenerator generator, Symbols symbols)
        {
            //FieldIdentifier.Generate(generator, symbols);
            generator.Emit(OpCodes.Ldfld, symbols.Variables[FieldIdentifier.ILName]);

            if (NextNested != null)
                NextNested.Generate(generator, symbols);
        }
Exemple #11
0
        public override void Generate(ILGenerator generator, Symbols symbols)
        {
            var typeFeild = symbols.Variables[Record.ILName];
            generator.Emit(OpCodes.Ldsfld, typeFeild);
            //NextNested.FieldIdentifier.Generate(generator, symbols);
            generator.Emit(OpCodes.Ldfld, symbols.Variables[NextNested.FieldIdentifier.ILName]);

            if (NextNested.NextNested != null)
                NextNested.NextNested.Generate(generator, symbols);
        }
Exemple #12
0
        public override void Generate(ILGenerator generator, Symbols symbols)
        {
            var varVariable = symbols.Variables[ArrayIdentifier.ILName];
            generator.Emit(OpCodes.Ldsfld, varVariable);
            NextNested.Index.Generate(generator, symbols);
            generator.Emit(OpCodes.Ldelem, symbols.GetRealType(NextNested.Index.ILName));

            if (NextNested.NextNested != null)
                NextNested.NextNested.Generate(generator, symbols);
        }
Exemple #13
0
        public static void GenerateCode(LanguageNode root, string path)
        {
            var s = new Symbols(path);
            var generator = s.MainMethod.GetILGenerator();

            root.Generate(generator, s);
            generator.Emit(OpCodes.Ret);
            s.ProgramType.CreateType();
            s.Assembly.SetEntryPoint(s.MainMethod);
            s.Assembly.Save(s.AssemblyName.Name + ".exe");
        }
        public static ControlFlowGraph DoBuildControlFlowGraph(IMethodBody cil, Symbols symbols)
        {
            ReadOnlyDictionary<ControlFlowBlock, ReadOnlyCollection<IILOp>> blocks2parts;
            var cfg = CreateCarcass.DoCreateCarcass(cil, out blocks2parts);
            foreach (var cfb in blocks2parts.Keys)
            {
                InitialDecompilation.DoPrimaryDecompilation(cfb, blocks2parts[cfb], symbols);
            }

            return cfg;
        }
Exemple #15
0
 public override void Generate(ILGenerator generator, Symbols s)
 {
     LeftOperand.Generate(generator, s);
     RightOperand.Generate(generator, s);
     if (LeftOperand.ExpressionType.Type == TypesEnumeration.String)
     {
         generator.Emit(OpCodes.Call, typeof(string).GetMethod("Compare", new []{typeof(string), typeof(string)}));
         generator.Emit(OpCodes.Ldc_I4_0);
         generator.Emit(OpCodes.Ceq);
     }
     else
         generator.Emit(OpCodes.Ceq);
 }
Exemple #16
0
        public static DataTable GetDataTable(Symbols symbols, String query,IDbEnvironment environment, int rsNo)
        {
            DbCommand dc = environment.CreateCommand(query, CommandType.Text);
            if (Options.ShouldBindSymbols())
                environment.BindFixtureSymbols(symbols, dc);

            DbDataAdapter oap = environment.DbProviderFactory.CreateDataAdapter();
            oap.SelectCommand = dc;
            var ds = new DataSet();
            oap.Fill(ds);
            dc.Dispose();
            return ds.Tables[rsNo - 1];
        }
Exemple #17
0
        public override void Generate(ILGenerator generator, Symbols s)
        {
            LeftOperand.Generate(generator, s);
            RightOperand.Generate(generator, s);

            if (LeftOperand.ExpressionType.Type == TypesEnumeration.Integer)
                generator.Emit(OpCodes.Clt);
            else
            {
                generator.Emit(OpCodes.Call, typeof(String).GetMethod("CompareTo", new Type[] { typeof(string) }));
                generator.Emit(OpCodes.Ldc_I4_M1);
                generator.Emit(OpCodes.Ceq);
            }
        }
        public override void Generate(ILGenerator generator, Symbols symbols)
        {
            var recordBuilder = symbols.ModuleBuilder.DefineType(Identifier.ILName, TypeAttributes.Public);
            symbols.Records.Add(Identifier.ILName, recordBuilder);

            foreach (var item in FieldDeclarationList)
            {
                item.ILName = Identifier.ILName + item.Field.ILName;
                Type _type = symbols.GetRealType(item.TypeName.ILName);
                FieldBuilder fieldBuilder = recordBuilder.DefineField(item.ILName,
                    _type,
                    FieldAttributes.Public);
                symbols.Variables.Add(item.ILName, fieldBuilder);
            }
            recordBuilder.CreateType();
        }
Exemple #19
0
 private void GenerateFieldAccess(FieldNestedNode current, ILGenerator generator, Symbols symbols)
 {
     if (current.NextNested != null)
     {
         generator.Emit(OpCodes.Ldfld, symbols.Variables[current.FieldIdentifier.ILName]);
         if (current.NextNested is FieldNestedNode)
             GenerateFieldAccess((FieldNestedNode)current.NextNested, generator, symbols);
         else
             GenerateIndexAccess((IndexNestedNode)current.NextNested, generator, symbols);
     }
     else
     {
         Expr.Generate(generator, symbols);
         generator.Emit(OpCodes.Stfld, symbols.Variables[current.FieldIdentifier.ILName]);
     }
 }
 public static void DoRestoreOpAssignOperators(ControlFlowGraph cfg, Symbols symbols)
 {
     var dirty = true;
     var dfa = new DfaHelper(cfg);
     while (dirty)
     {
         dirty = false;
         foreach (var atom in dfa.Atoms())
         {
             if (dirty |= TryMatchPattern1(dfa, atom)) break;
             if (dirty |= TryMatchPattern2(dfa, atom)) break;
             if (dirty |= TryMatchPattern3(dfa, atom)) break;
             if (dirty |= TryMatchPattern4(dfa, atom)) break;
         }
     }
 }
 public static void SetParameterValue(Symbols symbols, String name, Object value)
 {
     if (value == null || "null".Equals(value.ToString().ToLower()))
     {
        symbols.Save(name, DBNull.Value);
     }
     else if (value != null && value.ToString().StartsWith("<<"))
     {
         string varname = value.ToString().Substring(2);
         if (!name.Equals(varname))
         {
             symbols.Save(name, symbols.GetValueOrDefault(varname, null));
         }
     }
     else
         symbols.Save(name, value);
 }
Exemple #22
0
        public override void Generate(ILGenerator generator, Symbols symbols)
        {
            if (Identifier is IdNode)
            {
                var lvalue = symbols.Variables[Identifier.ILName];
                Expr.Generate(generator, symbols);
                generator.Emit(OpCodes.Stsfld, lvalue);
            }
            else
            {
                var variable = symbols.Variables[Identifier.ILName];
                generator.Emit(OpCodes.Ldsfld, variable);

                if (Identifier is AccessFieldNode)
                    GenerateFieldAccess(((AccessFieldNode)Identifier).NextNested, generator, symbols);
                else
                    GenerateIndexAccess(((ArrayItemNode)Identifier).NextNested, generator, symbols);
            }
        }
Exemple #23
0
        public override void Generate(ILGenerator generator, Symbols s)
        {
            var Is_True = generator.DefineLabel();
            var End = generator.DefineLabel();

            LeftOperand.Generate(generator, s);
            generator.Emit(OpCodes.Ldc_I4_0);
            generator.Emit(OpCodes.Bne_Un, Is_True);

            RightOperand.Generate(generator, s);
            generator.Emit(OpCodes.Ldc_I4_0);
            generator.Emit(OpCodes.Bne_Un, Is_True);

            generator.Emit(OpCodes.Ldc_I4_0);
            generator.Emit(OpCodes.Br, End);

            generator.MarkLabel(Is_True);
            generator.Emit(OpCodes.Ldc_I4_1);
            generator.MarkLabel(End);
        }
Exemple #24
0
 public override void Generate(ILGenerator generator, Symbols s)
 {
     LeftOperand.Generate(generator, s);
     RightOperand.Generate(generator, s);
     if (LeftOperand.ExpressionType.Type == TypesEnumeration.String)
     {
         generator.Emit(OpCodes.Call, typeof(string).GetMethod("Compare", new[] { typeof(string), typeof(string) }));
         var peek = generator.DeclareLocal(typeof (int));
         generator.Emit(OpCodes.Stloc, peek);
         generator.Emit(OpCodes.Ldloc,peek);
         generator.Emit(OpCodes.Ldloc, peek);
         generator.Emit(OpCodes.Mul);
     }
     else
     {
         generator.Emit(OpCodes.Ceq);
         generator.Emit(OpCodes.Ldc_I4_0);
         generator.Emit(OpCodes.Ceq);
     }
 }
        protected override void OnStart()
        {
            EURUSDSymbol = Symbols.GetSymbol(EURUSDSymbolCode);
            USDCHFSymbol = Symbols.GetSymbol(USDCHFSymbolCode);

            ExitAtBreakEven = false;

            ///<summary>
            /// This statement is to ensure the ExitAtBreakEven flag is set correctly if the application is restarted in the middle of a trade.
            /// Specifically, if TotalBuyPips or TotalSellPips is greater than the TakeProfitInPip value the profit is taken and the pair closed,
            /// leaving the remaining pair. The ExitAtBreakEven flag is set to true to close the remaining pair off as soon as possible.
            ///
            /// If the application stops and is estarted the status of the ExitAtBreakEven flag is lost. his check will set the ExitAtBreakEven flag
            /// to true if any pair ( buy or sell, but not both) is still active.
            ///</summary>
            if ((Positions.FindAll(BuyLabel).Length > 0 && Positions.FindAll(SellLabel).Length == 0) || (Positions.FindAll(BuyLabel).Length == 0 && Positions.FindAll(SellLabel).Length > 0))
            {
                ExitAtBreakEven = true;
            }

            Print("Break even flag = ", ExitAtBreakEven);
        }
Exemple #26
0
        public override void Generate(ILGenerator generator, Symbols s)
        {
            // Definir los lables necesarios
            var loopLabel = generator.DefineLabel();
            var endLabel = generator.DefineLabel();

            // Guardar el posible break que podria existir en el codigo
            s.NestedCylesBreakJumps.Push(endLabel);

            // Salto a la evaluacion de la condicion
            generator.MarkLabel(loopLabel);
            Condition.Generate(generator, s);
            generator.Emit(OpCodes.Ldc_I4_0);
            generator.Emit(OpCodes.Beq, endLabel);
            // Codigo del cuerpo
            Loop.Generate(generator, s);
            // looping
            generator.Emit(OpCodes.Br, loopLabel);
            generator.MarkLabel(endLabel);
            // Verificar que en el tope de la pila quede el resultado apropiado
            s.NestedCylesBreakJumps.Pop();
        }
Exemple #27
0
        public void DoesNotIncludeDocs()
        {
            Method method = new Method
                            (
                isAbstract: true, name: "myMethod",
                docs: new Docs(custom: new Dictionary <string, string> {
                { "foo", "bar" }
            })
                            );

            Symbols.MapMethodName("myInterfaceFqn", "myMethod", "MyMethod");

            string actual   = Render(method);
            string expected =
                @"[JsiiMethod(name: ""myMethod"")]
public void MyMethod()
{
    InvokeInstanceVoidMethod(new object[]{});
}";

            Assert.Equal(expected, actual, ignoreLineEndingDifferences: true);
        }
Exemple #28
0
        private static bool TryParseSpecialCharacter(
            Buffer buffer,
            char expectedCharacter,
            Symbols expectedSymbol,
            out ParseResult result)
        {
            var position = buffer.Cursor;

            if (buffer.TryNext(out var @char) && @char == expectedCharacter)
            {
                result = new ParseResult(new TerminalSymbol(
                                             expectedSymbol,
                                             @char));

                return(true);
            }

            buffer.Reset(position);
            result = new ParseResult($"'{expectedCharacter}' expected at position: {position + 1}");

            return(false);
        }
Exemple #29
0
        public async Task Symbols_ValidationVerifyMissingAssemblyIndexEntryCausesFailure(string isSymbolsString)
        {
            var isSymbols = bool.Parse(isSymbolsString);

            using (var testContext = new SleetTestContext())
            {
                var context = testContext.SleetContext;
                context.SourceSettings.SymbolsEnabled = true;
                var service = new Symbols(context);

                // Add packages
                await AddPackageAsync(isSymbols, testContext, service);

                // Corrupt feed
                var path = SymbolsIndexUtility.GetAssemblyToPackageIndexPath("a.dll", "A7F83EF08000");
                var assemblyPackageIndex = new AssetIndexFile(testContext.SleetContext, path, new PackageIdentity("a", NuGetVersion.Parse("1.0.0")));
                var exists = await assemblyPackageIndex.File.Exists(context.Log, context.Token);

                exists.Should().BeTrue();

                // Swap package <-> symbols to corrupt
                if (isSymbols)
                {
                    await assemblyPackageIndex.AddAssetsAsync(await assemblyPackageIndex.GetSymbolsAssetsAsync());
                }
                else
                {
                    await assemblyPackageIndex.AddSymbolsAssetsAsync(await assemblyPackageIndex.GetAssetsAsync());
                }

                // Validate
                var messages = await service.ValidateAsync();

                var hasErrors = messages.Any(e => e.Level == LogLevel.Error);

                hasErrors.Should().BeTrue();
            }
        }
Exemple #30
0
        // Function to search the symbol dictionary based on the selected value in the style file, category and/or geometry type ListBoxes
        private void Search()
        {
            Dictionary <string, string> filters = new Dictionary <string, string>();

            // Set Category filter
            if (!string.IsNullOrEmpty((string)cmbCategory.SelectedValue))
            {
                filters["CATEGORY"] = cmbCategory.SelectedValue.ToString();
            }

            // Clear the current Symbols collection
            Symbols.Clear();

            // Perform the search applying any selected keywords and filters
            IEnumerable <SymbolProperties> symbols = _symbolDictionary.FindSymbols(SelectedKeywords, filters);
            var allSymbols = symbols.ToList();

            // Update the list of applicable keywords (excluding any keywords that are not on the current result set)
            if (SelectedKeywords == null || SelectedKeywords.Count == 0)
            {
                _keywords = _symbolDictionary.Keywords.Where(k => !IsSymbolId(k)).ToList();
            }
            else
            {
                IEnumerable <string> allSymbolKeywords = allSymbols.SelectMany(s => s.Keywords);
                _keywords = allSymbolKeywords.Distinct()
                            .Except(SelectedKeywords)
                            .Where(k => !IsSymbolId(k))
                            .ToList();
            }
            RaisePropertyChanged("Keywords");

            // Add symbols to UI collection
            foreach (var s in from symbol in allSymbols select new SymbolViewModel(symbol, _imageSize))
            {
                Symbols.Add(s);
            }
        }
Exemple #31
0
        /// <summary>
        /// replaces $ variables with a c# statement
        /// the routine also implements some checks to see if $variables are matching with production symbols
        /// errors are added to the Error object.
        /// </summary>
        /// <param name="nts">non terminal and its production rule</param>
        /// <returns>a formated codeblock</returns>
        private string FormatCodeBlock(NonTerminalSymbol nts)
        {
            string codeblock = nts.CodeBlock;

            if (nts == null)
            {
                return("");
            }

            Regex var = new Regex(@"\$(?<var>[a-zA-Z_0-9]+)(\[(?<index>[^]]+)\])?", RegexOptions.Compiled);

            Symbols symbols = nts.DetermineProductionSymbols();


            Match match = var.Match(codeblock);

            while (match.Success)
            {
                Symbol s = symbols.Find(match.Groups["var"].Value);
                if (s == null)
                {
                    break;                     // error situation
                }
                string indexer = "0";
                if (match.Groups["index"].Value.Length > 0)
                {
                    indexer = match.Groups["index"].Value;
                }

                string replacement = "Me.GetValue(tree, TokenType." + s.Name + ", " + indexer + ")";

                codeblock = codeblock.Substring(0, match.Captures[0].Index) + replacement + codeblock.Substring(match.Captures[0].Index + match.Captures[0].Length);
                match     = var.Match(codeblock);
            }

            codeblock = "            " + codeblock.Replace("\n", "\r\n        ");
            return(codeblock);
        }
Exemple #32
0
        public StrategyViewModel(StrategiesViewModel parent, StrategyModel model, MarketService markets, AccountService accounts, SettingService settings)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            _parent   = parent;
            Model     = model;
            _markets  = markets;
            _accounts = accounts;
            _settings = settings;

            StartCommand                = new RelayCommand(() => DoRunStrategy(), () => true);
            StopCommand                 = new RelayCommand(() => { }, () => false);
            CloneCommand                = new RelayCommand(() => DoCloneStrategy(), () => true);
            CloneAlgorithmCommand       = new RelayCommand(() => DoCloneAlgorithm(), () => !string.IsNullOrEmpty(Model.AlgorithmName));
            ExportCommand               = new RelayCommand(() => DoExportStrategy(), () => true);
            DeleteCommand               = new RelayCommand(() => _parent?.DoDeleteStrategy(this), () => true);
            DeleteAllTracksCommand      = new RelayCommand(() => DoDeleteTracks(null), () => true);
            DeleteSelectedTracksCommand = new RelayCommand <IList>(m => DoDeleteTracks(m), m => true);
            UseParametersCommand        = new RelayCommand <IList>(m => DoUseParameters(m), m => true);
            AddSymbolCommand            = new RelayCommand(() => DoAddSymbol(), () => true);
            DeleteSymbolsCommand        = new RelayCommand <IList>(m => DoDeleteSymbols(m), m => SelectedSymbol != null);
            ImportSymbolsCommand        = new RelayCommand(() => DoImportSymbols(), () => true);
            ExportSymbolsCommand        = new RelayCommand <IList>(m => DoExportSymbols(m), trm => SelectedSymbol != null);
            TrackDoubleClickCommand     = new RelayCommand <TrackViewModel>(m => DoSelectItem(m));
            MoveUpSymbolsCommand        = new RelayCommand <IList>(m => OnMoveUpSymbols(m), m => SelectedSymbol != null);
            MoveDownSymbolsCommand      = new RelayCommand <IList>(m => OnMoveDownSymbols(m), m => SelectedSymbol != null);
            SortSymbolsCommand          = new RelayCommand(() => Symbols.Sort(), () => true);

            Model.NameChanged          += StrategyNameChanged;
            Model.MarketChanged        += MarketChanged;
            Model.AlgorithmNameChanged += AlgorithmNameChanged;
            DataFromModel();

            Model.EndDate = DateTime.Now;
        }
Exemple #33
0
        public void IncludesBase()
        {
            ClassType classType = new ClassType
                                  (
                "myFqn",
                "myPackage",
                "myClass",
                "myNamespace",
                false,
                initializer: new Method(true, false, false),
                @base: new TypeReference("myBaseTypeFqn")
                                  );

            Symbols.MapTypeName("myBaseTypeFqn", "MyBaseType", JsonModel.Spec.TypeKind.Class);

            string actual   = Render(classType);
            string expected =
                @"namespace MyNamespace
{
    [JsiiClass(typeof(MyClass), ""myFqn"", ""[]"")]
    public class MyClass : MyBaseType
    {
        public MyClass(): base(new DeputyProps(new object[]{}))
        {
        }

        protected MyClass(ByRefValue reference): base(reference)
        {
        }

        protected MyClass(DeputyProps props): base(props)
        {
        }
    }
}";

            Assert.Equal(expected, actual, ignoreLineEndingDifferences: true);
        }
Exemple #34
0
        internal static void DataDisassembly(StreamWriter sw, BinaryReader br, Section section, IEnumerable <Overlay.RelocationWord> rel)
        {
            WriteSectionName(sw, section);
            sw.WriteLine();

            br.BaseStream.Position = section.Offset;
            pc = section.VRam;

            List <byte> byteChain  = new();
            N64Ptr      end        = section.VRam + section.Size;
            N64Ptr      chainStart = pc;

            while (pc < end)
            {
                if (Symbols.ContainsKey(pc))
                {
                    DumpByteChain(sw, chainStart, ref byteChain);
                    chainStart = pc;
                    sw.Write($"{Symbols[pc]}: ");
                }

                if (rel.Any(x => x.Offset == br.BaseStream.Position))
                {
                    DumpByteChain(sw, chainStart, ref byteChain);
                    N64Ptr lbl = br.ReadBigInt32();
                    pc        += 4;
                    chainStart = pc;
                    sw.WriteLine($".word {Symbols[lbl]}");
                }
                else
                {
                    byteChain.Add(br.ReadByte());
                    pc += 1;
                }
            }
            DumpByteChain(sw, chainStart, ref byteChain);
            sw.WriteLine();
        }
Exemple #35
0
		public void AddAccessibilitySpec(Bookmark bmk, AccessibilitySpec spec)
		{
			// Just store wildcards for now
			if (spec.IsWildcard())
			{
				m_AccessibilitySpecs.Add(spec);
				return;
			}


			Symbol s;
			if (spec.IsMemberSpec())
			{
				s = Members.DefineSymbol(spec.GetExplicitName(), bmk);
			}
			else
			{
				s = Symbols.DefineSymbol(spec.GetExplicitName(), bmk);
			}

			// Mark obfuscation for this symbol
			s.Accessibility = spec.GetAccessibility();
		}
Exemple #36
0
        public void Run()
        {
            // Configure your credentials for IQConnect in user environment variable or app.config !!!
            // Check the documentation for more information.

            // Run IQConnect launcher
            IQFeedLauncher.Start();

            // Connect the LookupClient created from the constructor
            LookupClient.Connect();

            // Add 100 symbols to the concurrent queue
            foreach (var symbol in MarketData.GetSymbols().Take(100))
            {
                Symbols.Enqueue(symbol);
            }

            // Create required directories for saving files
            CreateDirectories();

            // Download data for all added symbols
            Start();
        }
Exemple #37
0
    private void LoadSymbols()
    {
        Symbols[] allSymbols = Resources.LoadAll <Symbols>("Symbols");
        if (allSymbols.Length < symbolsInGame)
        {
            Debug.LogError("not enough symbols to load into game");
            return;
        }

        HashSet <Symbols> gameSymbols = new HashSet <Symbols>();

        for (int i = 0; i < symbolsInGame; i++)
        {
            Symbols nextSymbol = allSymbols[Random.Range(0, allSymbols.Length)];
            while (gameSymbols.Contains(nextSymbol))
            {
                nextSymbol = allSymbols[Random.Range(0, allSymbols.Length)];
            }
            gameSymbols.Add(nextSymbol);
        }
        symbols = new Symbols[symbolsInGame];
        gameSymbols.CopyTo(symbols);
    }
        string Render(Method method)
        {
            ClassType classType = new ClassType
                                  (
                "myClassFqn",
                "myModule",
                "myClass",
                "myNamespace",
                true,
                initializer: new Method(true, false, false),
                methods: new[] { method }
                                  );

            Symbols.MapTypeToPackage("myClassFqn", "myPackage");
            Symbols.MapNamespace("myNamespace", "MyNamespace");
            Symbols.MapTypeName("myClassFqn", "MyClass", JsonModel.Spec.TypeKind.Class);

            ClassMethodGenerator generator = new ClassMethodGenerator(classType, method, Symbols, Namespaces);

            MethodDeclarationSyntax methodSyntax = generator.CreateMethod();

            return(methodSyntax.NormalizeWhitespace(elasticTrivia: true).ToString());
        }
Exemple #39
0
        public void RecordsReferencedParameterType()
        {
            Method method = new Method
                            (
                isProtected: false,
                isAbstract: true,
                name: "myMethod",
                parameters: new[]
            {
                new Parameter
                (
                    name: "myParameter",
                    type: new TypeReference(fullyQualifiedName: "myParameterTypeFqn")
                )
            }
                            );

            Symbols.MapParameterName("myParameter", "myParameter");

            Render(method);

            Namespaces.Received().Add(Arg.Is <TypeReference>(t => t.FullyQualifiedName == "myParameterTypeFqn"));
        }
        private void RaiseDoubleError(Symbols symbol)
        {
            string message = string.Empty;

            _position = null;

            switch (symbol)
            {
            case Symbols.SIdentificador:
                message = DoubleIdentificatorErrorMessage;
                break;

            case Symbols.SFuncao:
                message = DoubleFuncErrorMessage;
                break;

            case Symbols.SProcedimento:
                message = DoubleProcErrorMessage;
                break;
            }

            throw new CompilationException(string.Format(message, _lexical.Position.Line, _lexical.Position.Column, _token.Lexeme));
        }
        /// <summary>
        /// Returns true if SymbolMapping instances are equal
        /// </summary>
        /// <param name="other">Instance of SymbolMapping to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(SymbolMapping other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     Symbols == other.Symbols ||
                     Symbols != null &&
                     Symbols.SequenceEqual(other.Symbols)
                     ) &&
                 (
                     Fields == other.Fields ||
                     Fields != null &&
                     Fields.SequenceEqual(other.Fields)
                 ));
        }
Exemple #42
0
    private void AssignPlanetSymbols()
    {
        Planet[] planets = GetPlanets();

        int[]     weights   = new int[] { 1, 1, 1, -1, -1, -1 };
        Symbols[] p1Symbols = new Symbols[] { symbols[0], symbols[1], symbols[12], symbols[8], symbols[9], symbols[4] };
        Symbols[] p2Symbols = new Symbols[] { symbols[0], symbols[2], symbols[4], symbols[8], symbols[10], symbols[12] };
        Symbols[] p3Symbols = new Symbols[] { symbols[0], symbols[3], symbols[13], symbols[8], symbols[11], symbols[5] };
        Symbols[] p4Symbols = new Symbols[] { symbols[0], symbols[1], symbols[5], symbols[8], symbols[9], symbols[13] };
        Symbols[] p5Symbols = new Symbols[] { symbols[0], symbols[2], symbols[14], symbols[8], symbols[10], symbols[6] };
        Symbols[] p6Symbols = new Symbols[] { symbols[0], symbols[3], symbols[6], symbols[8], symbols[11], symbols[14] };
        Symbols[] p7Symbols = new Symbols[] { symbols[0], symbols[1], symbols[15], symbols[8], symbols[9], symbols[7] };
        Symbols[] p8Symbols = new Symbols[] { symbols[0], symbols[2], symbols[7], symbols[8], symbols[10], symbols[15] };

        planets[0].SetSymbolDict(p1Symbols, weights);
        planets[1].SetSymbolDict(p2Symbols, weights);
        planets[2].SetSymbolDict(p3Symbols, weights);
        planets[3].SetSymbolDict(p4Symbols, weights);
        planets[4].SetSymbolDict(p5Symbols, weights);
        planets[5].SetSymbolDict(p6Symbols, weights);
        planets[6].SetSymbolDict(p7Symbols, weights);
        planets[7].SetSymbolDict(p8Symbols, weights);
    }
Exemple #43
0
        // Any dot that looks like a function call
        public AstOpCall DotFunc(string name, AstValue[] args = null)
        {
            var op = Symbols.FindIdent(name);

            if (op.IsComponent)
            {
                return(DotComponent(op, args));
            }
            if (op.IsField)
            {
                return(DotField(op, args));
            }
            if (op.IsCallable)
            {
                return(DotFunc(op, args));
            }
            if (op.IsCallVar)
            {
                return(DotCallVar(op, args));
            }
            Parser.ParseError($"function, field or component expected: {name}");
            return(null);
        }
Exemple #44
0
        public static int EncodeSymbol(int varnumber, Symbols symbol, int?qualifier)
        {
            switch (symbol)
            {
            case Symbols.InputArgument:
                return((int)Symbols.InputArgument + (qualifier ?? 0));

            case Symbols.WorkingVariable:
                return((int)Symbols.InputArgument + varnumber + (4 * (qualifier ?? 0)));

            case Symbols.AssignWorkingVariable:
                return((int)Symbols.InputArgument + varnumber + (4 * (qualifier ?? 0)) + 1);

            case Symbols.DoubleLiteral:
                return((int)Symbols.InputArgument + varnumber + (4 * (qualifier ?? 0)) + 2);

            case Symbols.IntegerLiteral:
                return((int)Symbols.InputArgument + varnumber + (4 * (qualifier ?? 0)) + 3);

            default:
                return((int)symbol);
            }
        }
Exemple #45
0
 // recursively add symbols
 void AddPositions(int index, string prefix, IList <string> dims)
 {
     foreach (var frag in dims[index].Split('/'))
     {
         var name = prefix + frag;
         if (index + 1 < dims.Count)
         {
             AddPositions(index + 1, name, dims);
         }
         else
         {
             var sym = Symbols.Find(name);
             if (sym == null)
             {
                 Symbols.DefineValue(name, PositionValue.Create(name));
             }
             else if (!(sym.Kind == SymKinds.VALUE && sym.DataType == DataTypes.Position))
             {
                 _currentparser.Syntax("cannot define {0} as position", name);
             }
         }
     }
 }
Exemple #46
0
        public override string ToString()
        {
            StringBuilder builder = new StringBuilder();

            builder.Append(Kind);
            builder.AppendFormat(" Span at {0}::{1} - [{2}]", Start, Length, Content);
            builder.Append(" Edit: <");
            builder.Append(EditHandler.ToString());
            builder.Append(">");
            builder.Append(" Gen: <");
            builder.Append(CodeGenerator.ToString());
            builder.Append("> {");
            builder.Append(
                String.Join(
                    ";",
                    Symbols
                    .GroupBy(sym => sym.GetType())
                    .Select(grp => String.Concat(grp.Key.Name, ":", grp.Count()))
                    )
                );
            builder.Append("}");
            return(builder.ToString());
        }
        public void IncludesReturnTypeForNonVoid()
        {
            Method method = new Method
                            (
                isProtected: false,
                isAbstract: false,
                name: "myMethod",
                returns: new OptionalValue(type: new TypeReference("myReturnTypeFqn"))
                            );

            Symbols.MapMethodName("myClassFqn", "myMethod", "MyMethod");
            Symbols.MapTypeName("myReturnTypeFqn", "MyReturnType", JsonModel.Spec.TypeKind.Class);

            string actual   = Render(method);
            string expected =
                @"[JsiiMethod(name: ""myMethod"", returnsJson: ""{\""type\"":{\""fqn\"":\""myReturnTypeFqn\""}}"")]
public virtual MyReturnType MyMethod()
{
    return InvokeInstanceMethod<MyReturnType>(new object[]{});
}";

            Assert.Equal(expected, actual, ignoreLineEndingDifferences: true);
        }
        string Render(Property property)
        {
            ClassType classType = new ClassType
                                  (
                fullyQualifiedName: "myClassFqn",
                assembly: "myModule",
                name: "myClass",
                @namespace: "myNamespace",
                isAbstract: true,
                initializer: new Method(true, false, false),
                properties: new[] { property }
                                  );

            Symbols.MapTypeToPackage("myClassFqn", "myPackage");
            Symbols.MapNamespace("myNamespace", "MyNamespace");
            Symbols.MapTypeName("myClassFqn", "MyClass", JsonModel.Spec.TypeKind.Class);

            ClassPropertyGenerator generator = new ClassPropertyGenerator(classType, property, Symbols, Namespaces);

            PropertyDeclarationSyntax methodSyntax = generator.CreateProperty();

            return(methodSyntax.NormalizeWhitespace(elasticTrivia: true).ToString());
        }
Exemple #49
0
            internal static bool TryGetNUnitSymbols(Compilation compilation, out Symbols nunit)
            {
                nunit = new Symbols
                {
                    ExpectedException = compilation.GetTypeByMetadataName(ExpectedExceptionAttributeQualifiedName),
                    TestCase          = compilation.GetTypeByMetadataName(TestCaseAttributeQualifiedName),
                    Text                = compilation.GetTypeByMetadataName(TextConstraintsQualifiedName),
                    Is                  = compilation.GetTypeByMetadataName(IsConstraintsQualifiedName),
                    Assert              = compilation.GetTypeByMetadataName(AssertQualifiedName),
                    TestCaseSource      = compilation.GetTypeByMetadataName(TestCaseSourceQualifiedName),
                    ValueSource         = compilation.GetTypeByMetadataName(ValueSourceQualifiedName),
                    Suite               = compilation.GetTypeByMetadataName(SuiteAttributeQualifiedName),
                    RequiredAddin       = compilation.GetTypeByMetadataName(RequiredAddinAttributeQualifiedName),
                    RequiresMTA         = compilation.GetTypeByMetadataName(RequiresMTAAttributeQualifiedName),
                    RequiresSTA         = compilation.GetTypeByMetadataName(RequiresSTAAttributeQualifiedName),
                    TestFixtureSetUp    = compilation.GetTypeByMetadataName(TestFixtureSetUpAttributeQualifiedName),
                    TestFixtureTearDown = compilation.GetTypeByMetadataName(TestFixtureTearDownAttributeQualifiedName),
                    TestFixture         = compilation.GetTypeByMetadataName(TestFixtureAttributeQualifiedName),
                    Ignore              = compilation.GetTypeByMetadataName(IgnoreAttributeQualifiedName),
                };

                return(nunit.ArePresent);
            }
Exemple #50
0
        private static MarkerKind mapFrom(Symbols symbol)
        {
            switch (symbol)
            {
            case Symbols.None:
                return(MarkerKind.Square);

            case Symbols.Circle:
                return(MarkerKind.Circle);

            case Symbols.Diamond:
                return(MarkerKind.Diamond);

            case Symbols.Triangle:
                return(MarkerKind.Triangle);

            case Symbols.Square:
                return(MarkerKind.Square);

            default:
                throw new ArgumentOutOfRangeException(nameof(symbol));
            }
        }
Exemple #51
0
        // true predicate to print the line containing the current location
        // due to backtracking may be called more than once, so just do once and not off end
        public bool PrintLine(Cursor state, bool force = false)
        {
            if (NewInput != null)
            {
                return(true);              // suppress printing if #include pending
            }
            var bol = state.Location - state.Column + 1;

            if (bol > _input.LastLocation)
            {
                _input.LineStarts.Add(bol);
                Symbols.FindIdent("$lineno$").Value = NumberValue.Create(state.Line);
                if (Logger.Level >= 1 || force)
                {
                    Output.WriteLine("{0}{1,3}: {2} {3}",
                                     new string('>', _input.Level),
                                     state.Line, GetLine(state.Subject, bol),
                                     (Logger.Level >= 4) ? " <bol=" + bol.ToString() + ">" : "");
                }
                _input.LastLocation = bol;
            }
            return(true);
        }
Exemple #52
0
        public static PlotOptions.Markers GetMarker(Symbols symbol)
        {
            switch (symbol)
            {
            case Symbols.None:
                return(PlotOptions.Markers.None);

            case Symbols.Circle:
                return(PlotOptions.Markers.Circle);

            case Symbols.Diamond:
                return(PlotOptions.Markers.Diamond);

            case Symbols.Triangle:
                return(PlotOptions.Markers.Triangle);

            case Symbols.Square:
                return(PlotOptions.Markers.Square);

            default:
                throw new ArgumentOutOfRangeException("symbol");
            }
        }
Exemple #53
0
        public GameStatuses CheckIfEndGame(Game game, Symbols lookingForSymbol)
        {
            if (game.MovesPreview.Count < game.Board.Size * 2 - 1)
            {
                return(GameStatuses.InProgress);
            }

            if (
                LookRDiagonal(game.Board, lookingForSymbol) ||
                LookLDiagonal(game.Board, lookingForSymbol) ||
                LookHorizontalVertical(game.Board, lookingForSymbol)
                )
            {
                return(lookingForSymbol == Symbols.O ? GameStatuses.OWin : GameStatuses.XWin);
            }

            if ((game.Board.Size * game.Board.Size) == game.MovesPreview.Count)
            {
                return(GameStatuses.Tie);
            }

            return(GameStatuses.InProgress);
        }
Exemple #54
0
        // Compile and merge nodes from base game and variant
        internal void CompileGameOrVariant(PredefScopes predef, NodeListParser nlp)
        {
            Logger.WriteLine(1, "CompileGameOrVariant {0} <{1}>", predef, nlp);

            Symbols.PushPredefScope(predef);
            Symbols.CurrentScope.Push(); // game index will define pieces
            if (_game_index == null)
            {
                _game_index    = new GameIndex();
                _currentparser = NodeListParser.Create(_game_index.IndexGame(nlp), nlp.Symbols);
            }
            else
            {
                _currentparser = NodeListParser.Create(_game_index.MergeVariant(nlp), nlp.Symbols);
            }
            var codetype = Symbols.PredefScopeDict[predef].CodeType;

            _gen.EmitEntry(codetype);
            CompileProg(_currentparser);
            _gen.EmitExit(false);
            Symbols.CurrentScope.Pop();
            Symbols.PopPredefScope();
        }
        public void CheckASTScopeAndType(ASTNode node)
        {
            node.AppearsInScope = Symbols.CurrentScope;
            switch (node.Token.Kind)
            {
            case TokenKind.Block:
                Symbols.NewScope();
                break;

            case TokenKind.IdentifierToken:
                if (node.Parent.Token.Kind == TokenKind.VarDecl)
                {
                    Symbols.AddSymbol(node, node.Parent.Descendants[0].Token.Text);
                }
                else
                {
                    int symbolScope = FindSymbol(node, Symbols.CurrentScope);
                    if (symbolScope == -1)
                    {
                        Symbols.Diagnostics.Semantic_ReportUndeclaredIdentifier(node.Token, Symbols.CurrentScope.Level);
                        return;
                    }
                    else
                    {
                        node.ReferenceScope = symbolScope;
                    }
                }
                break;

            case TokenKind.AssignmentToken:
            case TokenKind.EquivalenceToken:
            case TokenKind.NotEqualToken:
            case TokenKind.AdditionToken:
                TypeChecker.CheckTypes(node);
                break;
            }
        }
Exemple #56
0
 public override void Generate(ILGenerator generator, Symbols symbols)
 {
     if (Arguments != null)
         foreach (var arg in Arguments)
             arg.Generate(generator, symbols);
     generator.Emit(OpCodes.Call, symbols.Routines[this.ILName]);
 }
Exemple #57
0
 public Interpreter(Symbols symbols, Tokenizer tokenizer, Executor executor)
 {
     this.symbols = symbols;
       this.tokenizer = tokenizer;
       this.executor = executor;
 }
Exemple #58
0
        public override void Generate(ILGenerator generator, Symbols symbols)
        {
            var iteratorVar = symbols.ProgramType.DefineField(IteratorName.ILName, typeof(int),
                                                           FieldAttributes.Public | FieldAttributes.Static);

            var highestValueVar = generator.DeclareLocal(typeof(int));
            var loop = generator.DefineLabel();
            var end = generator.DefineLabel();
            symbols.NestedCylesBreakJumps.Push(end);

            symbols.Variables.Add(IteratorName.ILName, null);
            LowerValue.Generate(generator, symbols);
            generator.Emit(OpCodes.Stsfld, iteratorVar);
            HighestValue.Generate(generator, symbols);
            generator.Emit(OpCodes.Stloc, highestValueVar);

            generator.MarkLabel(loop);
            symbols.Variables[IteratorName.ILName] = iteratorVar;
            generator.Emit(OpCodes.Ldsfld, iteratorVar);
            generator.Emit(OpCodes.Ldloc, highestValueVar);
            generator.Emit(OpCodes.Bgt, end);

            Loop.Generate(generator, symbols);
            generator.Emit(OpCodes.Ldsfld, iteratorVar);
            generator.Emit(OpCodes.Ldc_I4_1);
            generator.Emit(OpCodes.Add);
            generator.Emit(OpCodes.Stsfld, iteratorVar);

            generator.Emit(OpCodes.Br, loop);
            generator.MarkLabel(end);

            symbols.Variables.Remove(IteratorName.ILName);
            symbols.NestedCylesBreakJumps.Pop();
        }
        public override void Generate(ILGenerator generator, Symbols symbols)
        {
            var paramsTypes = Arguments != null ? new Type[Arguments.Count] : System.Type.EmptyTypes;

            for (int i = 0; i < paramsTypes.Length; i++)
            {
                var paramType = symbols.GetRealType(Arguments[i].TypeName.ILName);
                var parameter = symbols.ProgramType.DefineField(
                                            Arguments[i].ILName, paramType,
                                            FieldAttributes.Public |
                                            FieldAttributes.Static);

                symbols.Variables.Add(Arguments[i].ILName, parameter);
                paramsTypes[i] = paramType;
            }

            var returnType = symbols.GetRealType(ReturnType != null ? ReturnType.ILName : "voidScope0");
            var routin = symbols.ProgramType.DefineMethod(Identifier.ILName,
                                                          MethodAttributes.Public | MethodAttributes.Static, returnType,
                                                          paramsTypes);
            var routinIL = routin.GetILGenerator();
            symbols.Routines.Add(Identifier.ILName, routin);

            for (int i = 0; i < paramsTypes.Length; i++) //l_0000
                routinIL.Emit(OpCodes.Ldsfld, symbols.Variables[Arguments[i].ILName]);

            //var currentVariables = new List<string>();
            //foreach (var item in symbols.Variables)
            //{
            //    currentVariables.Add(item.Key);
            //    routinIL.Emit(OpCodes.Ldsfld, symbols.Variables[item.Key]);
            //}

            for (int i = 0; i < paramsTypes.Length; i++)
            {
                routinIL.Emit(OpCodes.Ldarg, i); //ldarg A_0
                routinIL.Emit(OpCodes.Stsfld, symbols.Variables[Arguments[i].ILName]); //l_000b
            }

            if (this is FunctionDeclarationNode)
                ((FunctionDeclarationNode)this).Body.Generate(routinIL, symbols);
            else
                ((ProcedureDeclarationNode)this).Body.Generate(routinIL, symbols);

            LocalBuilder returnVariable = null;
            if (ReturnType != null)
            {
                returnVariable = routinIL.DeclareLocal(returnType);
                routinIL.Emit(OpCodes.Stloc, returnVariable);
            }

            for (int i = paramsTypes.Length - 1; i >= 0; i--)
                routinIL.Emit(OpCodes.Stsfld, symbols.Variables[Arguments[i].ILName]);

            //currentVariables.Reverse();
            //currentVariables.ForEach(x => routinIL.Emit(OpCodes.Stsfld, symbols.Variables[x]));

            if (ReturnType != null)
                routinIL.Emit(OpCodes.Ldloc, returnVariable);

            routinIL.Emit(OpCodes.Ret);

            if (Arguments != null)
                foreach (var argument in Arguments)
                    symbols.Variables.Remove(argument.Field.ILName);
        }
Exemple #60
0
        public override BoundStatement CreateBlockPrologue(BoundBlock original, out Symbols.LocalSymbol synthesizedLocal)
        {
            var previous = base.CreateBlockPrologue(original, out synthesizedLocal);
            if (original.Syntax.Kind() == SyntaxKind.Block && !original.WasCompilerGenerated)
            {
                var oBspan = ((BlockSyntax)original.Syntax).OpenBraceToken.Span;
                return new BoundSequencePointWithSpan(original.Syntax, previous, oBspan);
            }
            else if (previous != null)
            {
                return new BoundSequencePoint(original.Syntax, previous);
            }

            return null;
        }