62 次程式碼提交 (e5a8a5dbf98f8509c384a2621c35387e2b98d6db)
 

作者 SHA1 備註 提交日期
  MaximeBarniaudy e5a8a5dbf9 Remove old unused code, and measure parsing speed 11 月之前
  MaximeBarniaudy c8a1e19b47 Use newest primitives for character class and string matching 11 月之前
  MaximeBarniaudy a988c7932a Build Grammar objects whose methods are expression representations of grammar rules 11 月之前
  MaximeBarniaudy c3091ad1ca Fix errors after SetVar behavior change and let removal 11 月之前
  MaximeBarniaudy 06f1b199f1 Delare Stream object in C code and add primitive for stream string matching. Also refactor the rollback mechanism in the grammar parser to give responsibility to the right object. 11 月之前
  MaximeBarniaudy ae3c6c9a9e Make grammar_parser.meta use the entire grammar from minproto.leg 11 月之前
  MaximeBarniaudy fe37f0540d Add optional base argument to String.asInteger 11 月之前
  MaximeBarniaudy b26a8b7a59 Fix error after single quote semantics change 1 年之前
  MaximeBarniaudy 64397bf953 Add with and without functions for namespace manimulation, add namespace support to grammars, add test of parser circularity 1 年之前
  MaximeBarniaudy a0a7440d85 parser circularity 1 年之前
  MaximeBarniaudy 59b776efb7 dotdot got lost in merging 1 年之前
  MaximeBarniaudy 700023a866 Add Invoke and GetProp 1 年之前
  MaximeBarniaudy 5351152212 Minimal grammar parsing 1 年之前
  MaximeBarniaudy 85147a37b9 Add an intern primitive for symbol creation 1 年之前
  MaximeBarniaudy 0bae1d68ba Fix range access overshadowing key access 1 年之前
  WitherFlower 838e3451cb Merge range access and grammar parser changes 1 年之前
  Ian Piumarta 3d36581570 Include libffi in executable. 11 月之前
  Ian Piumarta 4b75732a7e Support super.id() to call method id in the delegate of the object in which the currently running method was found. Add __extern__ to support foreign function calls. 11 月之前
  Ian Piumarta f2e790cb26 Add String.bitSet, .bitClear, .bitInvert, bitTest, .charClass, .compareFrom. 11 月之前
  Ian Piumarta 1fd5a0be12 New reference output. 11 月之前
  Ian Piumarta e57242eb5d Prefix 'local' constrins variables to be in current scope. Variable references, inrement operator l-values, and function definitions can all be qualified 'local' or 'global'. 11 月之前
  Ian Piumarta 4622db9d34 Simplify variable lookup and implicit variable declarations. 11 月之前
  Ian Piumarta 2983237af0 Object.push(x) returns self, not x. 11 月之前
  Ian Piumarta 2171f47dce Fold constants during parsing if FOLDCONST=1. 11 月之前
  Ian Piumarta 4d396d6170 Fix floating point comparison and assignment operators. 11 月之前
  Ian Piumarta 883a9cf7c2 Remove let and ::. Add global keyword. Add Ref/Get/SetSym. Cast the 0 terminator in genericError to oop to ensure va_arg picks it up. Better error messages for broken statements in blocks and broken expressions in argument lists. 11 月之前
  Ian Piumarta ea60878c24 Add exception tests. New test.txt reference output. 11 月之前
  Ian Piumarta dcbef49750 Exceptions are supported with syntax "try {} catch (e) {}", "try {} ensure {}", and "raise e". Add catch to the list of words that can end an expression statement. Most runtime errors are reported using exceptions when EXCEPTIONS=1. Add String_repeat() supporting multiplying a string and an integer. Illegal escape sequence in a string is a warning not an error. Break and continue work properly in while(). ForFromTo evaluates its start and end arguments. Rename primitive fatal() to error(). 11 月之前
  Ian Piumarta 207ef22fb0 Upate test reference output. 11 月之前
  Ian Piumarta 46c7ef6f32 Run the first non-option command line argument as the program. Set _argv__ to program name plus any following command-line arguments. 11 月之前
  Ian Piumarta 2fcfaa962b Primitives have a unique integer index to identify them. Add String_appendString(base, ext) with the obvious behaviour. Rename newStringEscaped -> newStringUnescaped to describe its operation not its input. Add String_escaped() to replace non-graphic characters. Add String_push() to append characters or strings. Add __primitives__ containing an array of all primitives. Add reverseString() that reverse a string in-place. Add reverseObject() that reverses an object in-place. Add reversed() that returns a reversed copy of an object or string. Fix Let_codeOn() to avoid the # in front of the variable name. Add /* ... */ syntax for multi-line, nesting comments. Add method String.new() to make a new, empty string. Add methods String.escaped(), String.unescaped(). Add method String.push() to append a character or another string. Add method String.pop() to remove and return the last character. Add methods String.asInteger(), String.asFloat(), String.asSymbol(). Provide an implementation of strnstr() for C libraries that lack it. Add method Object.includes() that searches indexable part of an object. Add method String.includes() that searches for characters or strings. Add String.sliced(start, stop) that returns a sub-string. Add method Symbol.asString(). Add method Object.findKey(). Add primitive reversed(). Add methods Symbol.getopt() and Symbol.setopt(). Add method Symbol.defined() that checks the global value, whereas the defined() primitive checks all visible bindings. Add method Symbol.define() to set the global value. Add method Symbol.value() to retrieve the global value. Add method Symbol.allInstances(). 1 年之前
  Ian Piumarta cd992e141e Include profile guided optimisation workload. 1 年之前
  Ian Piumarta f75c06ca3e Target minproto-opt built with TYPECODES and DELOPT enabled. Target release profiles with -O to disable backtrace. 1 年之前
  Ian Piumarta 09c41142f3 <type>.eval methods are installed in all built-in object types when TYPECODES=1. println() prints object properties in alphabetical order. 1 年之前
  Ian Piumarta c5c29bdbb0 Add release target that uses profile guided optimisation. 1 年之前
  Ian Piumarta 5e59fa586e Restore original benchmark size and number of repeats. 1 年之前
  Ian Piumarta 4ac12f91c5 Add symbols #O, #d, #v and Symbol.setop() primitive. Add primitive method Symbol.setopt(N) to set command-line option at runtime. Add primitive method Symbol.defined() to test if a variable name has been defined. Overload primitive "+" to concatenate strings. Add stack of namespaces, initialised to empty object. refvar() and getvar() search namespaces, from most to least recent, when looking for global variables. setvar() always defines globals in the most recent namespace regardless of any existing shadowed definitions. Make OBJ::NAME a synonym for OBJ.NAME except that OBJ::NAME() applies a function whereas OBJ.NAME() invokes method NAME on OBJ. Add primitive error() to print source location, error message, and backtrace. 1 年之前
  Ian Piumarta 2761c99ce2 Object.dump() uses Object.allKeys() instead of Object.keys(). 1 年之前
  Ian Piumarta 31e6d2ff3d Primitives have correct names. Primitive Object.keys() returns properties that do not begin with "__". Add method Object.allKeys() that returns properties that do not begin with "__". Add method Object.sorted() to sort indexable elements. Add function sorted() for String and Object. Relations do not consider strings and symbols to be comparable. Printing strings does not include quotation marks at indentation levels 0 and 1. Printing strings escapes control characters at indentation levels other than 0 and 1. Rename SetVar.expr to SetVar.value to be consistent with SetProp and SetArray. Add RefVar, RefProp, RefArray that compute address of assignable value. Add Binops for autoincrement and assignment operators. Any expression can be the subject of increment or assignment operator. Enforce lvalue for increment and assignment operators by semanic check, not in syntax. String literals can contain escaped quotation marks. Keyword:value pairs in parameter lists provide arbitray expressions as default parameter values. Evaluate and assign default parameters values in apply(). 1 年之前
  Ian Piumarta ff3dda9f83 Include recent results as comments. 1 年之前
  Ian Piumarta 956adf81e4 Define _GNU_SOURCE to expose qsort_r(). 1 年之前
  Ian Piumarta 9cc8c3e572 Top-level expressions use the value of symbol __globals__ as the base environment instead of nil. Fix off-by-1 error in nlrPush(). Object.keys() returns keys in alphabetical order. 1 年之前
  Ian Piumarta 057733b85f Binary operators store pointer to implementation to avoid operator selection during eval. 1 年之前
  Ian Piumarta 2f164a3100 Use spaces instead of tabs to preserve visual alignment in broken tools. 1 年之前
  Ian Piumarta 30facb810c Add auto increment/decrement and assignment operators. 1 年之前
  Ian Piumarta 4d570df59e ForToFrom performs update step after continue. 1 年之前
  Ian Piumarta 5ca296eb47 Add return, break, and continue. 1 年之前
  Ian Piumarta 5b1ec1d738 Test user-defined AST nodes. 1 年之前
  Ian Piumarta 6ba66daa8b Test user-defined AST nodes. 1 年之前
  Ian Piumarta 57fe021082 All symbols created with UNDEFINED_TYPECODE by default. AST nodes with undefined typecode are evaluated by invoking the method __eval__ on the node. Typecode is looked up in the immediate delegate of a node only. Object.__eval__() is primitive and returns self. 1 年之前