File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
MethodSystem/Methods/NumberMethods Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ using SER . ArgumentSystem . Arguments ;
2+ using SER . ArgumentSystem . BaseArguments ;
3+ using SER . MethodSystem . BaseMethods ;
4+ using SER . MethodSystem . Structures ;
5+ using SER . TokenSystem . Tokens ;
6+ using SER . ValueSystem ;
7+
8+ namespace SER . MethodSystem . Methods . NumberMethods ;
9+
10+ public class TryParseNumberMethod : ReferenceReturningMethod < ParseResult < NumberValue > >
11+ {
12+ public override string Description => "Tries to parse a given value to a number." ;
13+
14+ public override Argument [ ] ExpectedArguments =>
15+ [
16+ new AnyValueArgument ( "value to parse" )
17+ ] ;
18+
19+ public override void Execute ( )
20+ {
21+ var valueToParse = Args . GetAnyValue ( "value to parse" ) ;
22+ if ( valueToParse is NumberValue numVal )
23+ {
24+ ReturnValue = new ( numVal . ExactValue ) ;
25+ return ;
26+ }
27+
28+ if ( BaseToken . TryParse < NumberToken > ( valueToParse . ToString ( ) , Script ) . WasSuccessful ( out var token ) )
29+ {
30+ ReturnValue = new ( token . Value ) ;
31+ return ;
32+ }
33+
34+ ReturnValue = new ( null ) ;
35+ }
36+ }
You can’t perform that action at this time.
0 commit comments