Add an output file parameter.
This commit is contained in:
		
							parent
							
								
									1150e2b3ef
								
							
						
					
					
						commit
						2ed2a4932c
					
				@ -180,7 +180,7 @@ module Chalk
 | 
				
			|||||||
          all_instructions << Ir::ReturnInstruction.new
 | 
					          all_instructions << Ir::ReturnInstruction.new
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        file = File.open("out.ch8", "w")
 | 
					        file = File.open(@config.output, "w")
 | 
				
			||||||
        generate_binary(table, all_instructions, file)
 | 
					        generate_binary(table, all_instructions, file)
 | 
				
			||||||
        file.close
 | 
					        file.close
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
				
			|||||||
@ -22,15 +22,20 @@ module Chalk
 | 
				
			|||||||
      getter mode : OutputMode
 | 
					      getter mode : OutputMode
 | 
				
			||||||
      # Sets the mode in which the compiler should operate.
 | 
					      # Sets the mode in which the compiler should operate.
 | 
				
			||||||
      setter mode : OutputMode
 | 
					      setter mode : OutputMode
 | 
				
			||||||
      # Gets the log level
 | 
					      # Gets the log level.
 | 
				
			||||||
      getter loglevel : Logger::Severity
 | 
					      getter loglevel : Logger::Severity
 | 
				
			||||||
      # Sets the log level
 | 
					      # Sets the log level.
 | 
				
			||||||
      setter loglevel : Logger::Severity
 | 
					      setter loglevel : Logger::Severity
 | 
				
			||||||
 | 
					      # Gets the output file destination.
 | 
				
			||||||
 | 
					      getter output : String
 | 
				
			||||||
 | 
					      # Sets the output file destination.
 | 
				
			||||||
 | 
					      setter output : String
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Creates a new configuration.
 | 
					      # Creates a new configuration.
 | 
				
			||||||
      def initialize(@file = "",
 | 
					      def initialize(@file = "",
 | 
				
			||||||
                     @mode = OutputMode::Tree,
 | 
					                     @mode = OutputMode::Tree,
 | 
				
			||||||
                     @loglevel = Logger::Severity::DEBUG)
 | 
					                     @loglevel = Logger::Severity::DEBUG,
 | 
				
			||||||
 | 
					                     @output : String = "out.ch8")
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Reads a configuration from the command line options.
 | 
					      # Reads a configuration from the command line options.
 | 
				
			||||||
@ -53,6 +58,9 @@ module Chalk
 | 
				
			|||||||
          parser.on("-f", "--file=FILE", "Set the input file to compile.") do |file|
 | 
					          parser.on("-f", "--file=FILE", "Set the input file to compile.") do |file|
 | 
				
			||||||
            config.file = file
 | 
					            config.file = file
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
 | 
					          parser.on("-o", "--output=OUT", "Sets the output file.") do |out|
 | 
				
			||||||
 | 
					            config.output = out
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
          parser.on("-l", "--log=LOG", "Set the log level of the compiler.") do |log|
 | 
					          parser.on("-l", "--log=LOG", "Set the log level of the compiler.") do |log|
 | 
				
			||||||
            hash = {
 | 
					            hash = {
 | 
				
			||||||
                "debug" => Logger::Severity::DEBUG,
 | 
					                "debug" => Logger::Severity::DEBUG,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user