Code archives/Algorithms/Simple Parser & Executer

This code has been declared by its author to be Public Domain code.

Download source code

Simple Parser & Executer by daaan2007
I was drunk browsing the beginner forums and found someone asking for a solution. Well hub, here it is.
Rem
	
	Simple Parser & Executer for hub
	
	Sample Program:
		
		Local a:String = "v=1.0,a=100,t=120,a=200,t=180,r=200,t=30,r=200"
		runString( a )
	
EndRem

Function runString( line:String )
	
	line = line.Replace( " ", "" )
	line = line.Replace( ",", "" )
	line = line.Replace( "=", "" )
	
	Local instructionChars:String	= "artv"
	Local instruction:String
	Local value:String
	
	For i = 0 To line.length-1
		
		Select Chr( line[ i ] )
			
			Case "a", "r", "t", "v"
				
				instruction = Chr( line[ i ] ).ToLower()
				
			Case "0", ".", "1", "2", "3", "4", "5", "6", "7", "8", "9"
				
				value :+ Chr( line[ i ] )
				
				If instructionChars.contains( Chr( line[ i+1 ] ) ) Then
					
					Select instruction
						
						Case "a"
							acceleration( value.ToDouble() )
						
						Case "r"
							Print "r( " + value.ToDouble() + " )"
						
						Case "t"
							turn( value.ToDouble() )
						
						Case "v"
							Print "v( " + value.ToDouble() + " )"
						
					End Select
					
					value = ""
					
				End If
			
		End Select
		
	Next
	
End Function

Function acceleration( val:Double )
	Print "acceleration( " + val + " )"
End Function

Function turn( val:Double )
	Print "turn( " + val + " )"
End Function

Comments

None.

Code Archives Forum