public override void CodeGen(OutputContext output) { string GetName(AstSymbol symbol) { return(symbol.Thedef?.MangledName ?? symbol.Thedef?.Name ?? symbol.Name); } var allowShortHand = output.Options.Ecma >= 6; var keyString = Key switch { AstString str => str.Value, AstNumber num => num.Value.ToString("R", CultureInfo.InvariantCulture), AstSymbolRef _ => null, AstSymbol key => GetName(key), _ => null }; if (allowShortHand && Value is AstSymbol value && keyString != null && GetName(value) == keyString && OutputContext.IsIdentifierString(keyString) && OutputContext.IsIdentifier(keyString) ) { output.PrintPropertyName(keyString); }
public void VisitNumber(AstNumber ast) { switch (ast) { case AstIntNumber i: Assert.IsType <AstIntNumber>(this.expected); var expectedIntAst = (AstIntNumber)this.expected; Assert.Equal(expectedIntAst.Value, i.Value); break; case AstDoubleNumber d: Assert.IsType <AstDoubleNumber>(this.expected); var expectedDoubleAst = (AstDoubleNumber)this.expected; Assert.Equal(expectedDoubleAst.Value, d.Value); break; } }
protected void PrintGetterSetter(OutputContext output, string?type, bool @static) { if (@static) { output.Print("static"); output.Space(); } if (type != null) { output.Print(type); output.Space(); } var keyString = Key switch { AstString str => str.Value, AstNumber num => num.Value.ToString("R", CultureInfo.InvariantCulture), AstSymbolRef => null, AstSymbol key => key.Name, _ => null }; if (keyString != null) { output.PrintPropertyName(keyString); } else { output.Print("["); Key.Print(output); output.Print("]"); } ((AstLambda)Value).DoPrint(output, true); } }
public void VisitNumber(AstNumber ast) => IncrementCallCount(nameof(VisitNumber));
public static TrsNumber Convert(this AstNumber astIn) { var token = astIn.Number; return(new TrsNumber(token.TokenString, astIn)); }
public TrsNumber(string value, AstNumber source) { AstSource = source; Value = value; }