view interps/rail/src/Thread.h @ 11686:10d612def8ee draft

<b_jonas> perl -e for $e ("i","u"){ $f="bin/date$e"; open my$i,"<",$f or die "error open $f r"; local$/; $s=<$i> or die; $s=~s/"\\+%Y/\\${d:+-d "\\$d"} $&/ or die; open $o,">",$f or die "error open $f w: $!"; print $o $s or die; close $o or die; print "OK $f\\n" }
author HackEso <hackeso@esolangs.org>
date Fri, 04 Jan 2019 21:29:08 +0000
parents 859f9b4339e6
children
line wrap: on
line source

// Thread.h

#ifndef THREAD_H_RAIL_1
#define THREAD_H_RAIL_1

#include "Board.h"
#include "ActivationRecord.h"
#include "Binding.h"
#include "Error.h"
#include "MultiLexer.h"

class Thread
{
public:
  Thread();
  ~Thread();
  void reset(Board & start, std::map<std::string, Board> * newGlobals);
  void go(void);
  void step(void);
  std::list<Binding> const & getDataStack(void);
  std::list<ActivationRecord> const & getProgramStack(void);
  Error::t getStatus(void);
  std::string getErrorString(void);
private:
  std::list<Binding> dataStack;
  std::list<ActivationRecord> programStack;
  std::map<std::string, Board> * globals;
  MultiLexer multi;

  Error::t status;
  std::string custom;
};

#endif