public override ExecutionContext VisitRecuperer(Cosmos.RecupererContext context) { var input = executionConsole.ReadLine(); CosmosTypedValue typedValue; if (bool.TryParse(input.Replace("vrai", "true").Replace("faux", "false"), out var boolResult)) { typedValue = boolResult.AsCosmosBoolean(); } else if (decimal.TryParse(input, out var numberResult)) { typedValue = numberResult.AsCosmosNumber(); } else { typedValue = input.AsCosmosString(); } var variable = variableVisitor.Visit(context.la_zone_memoire()); parser.Variables[variable.Name] = variable.UpdatedTo(typedValue); return(null); }
/// <summary> /// Visit a parse tree produced by <see cref="Cosmos.recuperer"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitRecuperer([NotNull] Cosmos.RecupererContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="Cosmos.recuperer"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitRecuperer([NotNull] Cosmos.RecupererContext context) { }