aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/parser.h
AgeCommit message (Collapse)AuthorFilesLines
2014-02-15added State::StdError class for constructing errors from std::exception objectsRobin Haberkorn1-0/+11
2014-02-15use GLib's GError information to yield errorsRobin Haberkorn1-0/+6
* results in better error messages, e.g. when opening files * the case that a file to be opened (EB) exists but is not readably is handled for the first time
2014-02-15fixed Execute::macro() and Execute::file() exceptionsRobin Haberkorn1-4/+40
* might throw other exceptions that must be associated with the parent macro level's (stack frame) * add position information to "label not found" errors * Error copy constructors
2014-02-15removed most exception specifications: allow bad_allocs to propagateRobin Haberkorn1-20/+20
* specifications resulted in runtime errors (unexpected exception) when bad_alloc ocurred * specs should be used scarcely: only when the errors that may be thrown are all known and for documentary purposes
2014-02-15String::get_coord() calculates line and column of a string positionRobin Haberkorn1-11/+10
* use to get line and column into a stack frame
2014-02-15added support for TECO stack tracingRobin Haberkorn1-3/+80
* when an error is thrown, stack frames are collected on clean up, up to the toplevel macro * the toplevel macro decides how to display the error * now errors in interactive and batch mode are displayed differently * in batch mode, a backtrace is displayed as a sequence of messages * Execute::file() forwards errors correctly * the correct error in the file is displayed in interactive mode * necessary to build the stack trace
2014-02-15added EMCurses/Emscripten supportRobin Haberkorn1-1/+7
by building with Emscripten support, SciTECO may be embedded into web pages. * sciteco.html is not a piece of documentation but a sample SciTECO embedding
2013-03-19avoid delete-non-virtual-dtor warning on g++ 4.7Robin Haberkorn1-0/+1
* the warning itself makes sense but in the cases reportet they were irrelevant
2013-03-18explicitly instantiate MicroStateMachine: fixes compilation with gcc-4.4Robin Haberkorn1-4/+4
2013-03-18declare State::Error::Error() as printf-likeRobin Haberkorn1-1/+1
2013-03-16common parent state for all file-name-expecting commands: fixes EM ↵Robin Haberkorn1-0/+12
tab-completions * StateExpectFile adds no functionality (currently), but is useful for checking state types
2013-02-22use typedef for SciTECO integers and make it configurable at configure timeRobin Haberkorn1-5/+5
* storage size should always be 64 (gint64) to aid macro portability * however, for performance reasons users compiling from source might explicitly compile with 32 bit integers
2013-02-16implemented command to query ASCII code of character (^^x)Robin Haberkorn1-0/+9
2013-02-14hide some implementation details in MicroStateMachinesRobin Haberkorn1-5/+12
2013-02-14use Q-Register micro state machine when parsing Q-Reg spec in ↵Robin Haberkorn1-7/+8
string-building commands * allows referring to long Q-Register names in string arguments * currently, long names specified this way use their own string building char parsing (I'm unsure whether this makes any sense)
2013-02-14rewritten string building state machine using a common MicroStateMachine ↵Robin Haberkorn1-25/+51
base class * uses label pointers instead of state-enum and switch case (both faster and shorter to write) * common interface for all micro state machines: makes them reusable
2013-02-11States::is_string() to check whether current state is a string-stateRobin Haberkorn1-0/+6
2013-02-08reverse Execute::step() change: no need to pass parameters by referenceRobin Haberkorn1-1/+1
cmdline and cmdline_pos is no longer modified by code executed by step() instead it is modified at the outermost macro level (commandline macro level)
2013-02-08use special Q-Register $ (<ESC>) to hold the replacement commandlineRobin Haberkorn1-1/+1
* allows us to switch between buffers/registers when editing the commandline
2013-02-08delegate commandline replacements ("}") to the cmdline macro levelRobin Haberkorn1-6/+17
allows commandline editing scripted by macros
2013-02-03first draft of commandline-editing commands ({ and } as in VideoTECO)Robin Haberkorn1-1/+1
* simplified traditional commandline editing. no need to extend cmdline string one character at a time when inserting multiple. instead there's a marker (cmdline_pos) specifying the macro length to execute in a "step" and also the anchor for generating undo tokens * implementation does not yet work in macro calls * while editing the commandline, other buffers/registers may not be edited (need push-down-list and auxiliary q-register)
2013-01-23moved StateExpectQReg from parser.h to qregisters.hRobin Haberkorn1-22/+0
* parser.cpp|h should be reserved for generic and misc. stuff. the StateExpectQReg class is used almost exclusively by qregisters.cpp|h * resolves a circular header dependency issue
2013-01-19updated copyright (2012-2013)Robin Haberkorn1-1/+1
2012-12-04added copyright notice to every source fileRobin Haberkorn1-0/+17
2012-12-04autoconf preparation: move everything into src/ subdirRobin Haberkorn1-0/+266