aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.cpp
AgeCommit message (Collapse)Author
2017-12-19wip bring back export keywordAndrew Kelley
2017-12-18wip export rewriteAndrew Kelley
2017-10-26Improve invalid character error messages (#566)Marc Tiehuis
See #544
2017-09-28fix build on mingwAndrew Kelley
2017-09-28Allow 128-bit hex float literalsMarc Tiehuis
Closes #499.
2017-09-13fix up msvc stuff to make it work on linux and macos tooAndrew Kelley
2017-09-11Add support for MSVCJonathan Marler
2017-08-29introduce align keywordAndrew Kelley
* remove `@setGlobalAlign` * add align keyword for setting alignment on functions and variables. * loads and stores use alignment from pointer * memcpy, memset use alignment from pointer * add syntax for pointer alignment * slices can have volatile * add u2, i2 primitives * ignore preferred align and use abi align everywhere * back to only having alignOf builtin. preferredAlignOf is too tricky to be useful. See #432. Partial revert of e726925e802eddab53cbfd9aacbc5eefe95c356f. See #37
2017-08-20compile-time f32, f64 operations are now correctly lossyAndrew Kelley
previously we used the bigfloat abstraction to do all compile-time float math. but runtime code and comptime code are supposed to get the same result. so now if you add a f32 to a f32 at compile time it does it with f32 math instead of the bigfloat. float literals still get the bigfloat math. closes #424
2017-08-09more intuitive left shift and right shift operatorsAndrew Kelley
Before: * << is left shift, not allowed to shift 1 bits out * <<% is left shift, allowed to shift 1 bits out * >> is right shift, allowed to shift 1 bits out After: * << is left shift, allowed to shift 1 bits out * >> is right shift, allowed to shift 1 bits out * @shlExact is left shift, not allowed to shift 1 bits out * @shrExact is right shift, not allowed to shift 1 bits out Closes #413
2017-08-07Correct floating-point literal allowed rangesMarc Tiehuis
The exponent range for floating-point values is [-1022, 1023]. Fixes #399.
2017-07-08better bigint/bigfloat implementationAndrew Kelley
2017-06-14progress toward windows hello world workingAndrew Kelley
2017-05-19change slicing syntax from ... to ..Andrew Kelley
See #359
2017-05-03remove test and try expressions in favor of if expressionsAndrew Kelley
See #357
2017-04-13typedefpocalypseAndrew Kelley
closes #314
2017-04-10fix some -Wconversion errorsAndrew Kelley
2017-03-26replace "&&" and "||" with "and" and "or"Andrew Kelley
closes #272
2017-03-26new unreachable syntaxAndrew Kelley
* `noreturn` is the primitive type. * `unreachable` is a control flow keyword. * `@unreachable()` builtin function is deleted. closes #214
2017-03-16introduce new test syntaxAndrew Kelley
* remove setFnTest builtin * add test "name" { ... } syntax * remove --check-unused argument. functions are always lazy now.
2017-02-12fix tokenization assertion failure on some float numbersAndrew Kelley
See #258
2017-02-03implement packed structsAndrew Kelley
closes #183
2017-02-02add try expressionAndrew Kelley
See #83
2017-01-22use comptime instead of inline for var and paramsAndrew Kelley
See #221
2017-01-16get rid of zeroes literalAndrew Kelley
closes #222
2016-09-28remove compiler directivesAndrew Kelley
* add `setFnTest`, `setFnVisible`, `setFnStaticEval`, `setFnNoInline` builtin functions to replace previous directive functionality * add `coldcc` and `nakedcc` as keywords which can be used as part of a function prototype. * `setDebugSafety` builtin can be used to set debug safety features at a per block scope level. * closes #169
2016-09-26add this keyword refers to thing in immediate scopeAndrew Kelley
See #169
2016-09-19use size_t for indexesAndrew Kelley
protect against incorrect copies in debug mode
2016-09-06build: add missing static in tokenizerAndrew Kelley
2016-08-29tokenizer: add missing return statement on float overflowAndrew Kelley
closes #177
2016-08-08add zeroes valueAndrew Kelley
2016-08-04implement multiline C string syntaxAndrew Kelley
2016-08-04new multiline string syntaxAndrew Kelley
This patch also moves a bunch of the parser code into the tokenizer. Closes #162.
2016-07-27remove multiline commentsAndrew Kelley
closes #161
2016-07-27explicit wrapping integer operationsAndrew Kelley
instead of wrapping integer types closes #159
2016-07-09fix tokenizing string symbols with hex characters in themAndrew Kelley
2016-05-01implement string escapesAndrew Kelley
2016-04-28add array multiplication operatorAndrew Kelley
2016-04-24fix ability to parse character literalsAndrew Kelley
2016-04-24add skeleton for union supportAndrew Kelley
2016-04-22add syntax to allow symbols to have arbitrary strings as namesAndrew Kelley
2016-04-08fix parsing of hex literal 0xbJosh Wolfe
2016-04-03add multiline string literalAndrew Kelley
and make multiple lines in normal string literals an error
2016-03-01rewrite how importing worksAndrew Kelley
* Introduce the concept of packages. Closes #3 * Add support for error notes. * Introduce `@import` and `@c_import` builtin functions and remove the `import` and `c_import` top level declarations. * Introduce the `use` top level declaration. * Add `--check-unused` parameter to perform semantic analysis and codegen on all top level declarations, not just exported ones and ones referenced by exported ones. * Delete the root export node and add `--library` argument.
2016-02-05parsing code for defer and moreAndrew Kelley
* disable goto and label support see #44 * refactor the way block contexts work
2016-02-01inline is a keyword instead of a directiveAndrew Kelley
2016-01-31parseh understands types better and handles some situations betterAndrew Kelley
See #88 Also, includes partial implementation of typedef top level declaration. See #95 Also, fix function types. Previously the way we were deduping function type pointers was incorrect.
2016-01-29parseh defines can reference other definesAndrew Kelley
2016-01-29parseh understands simple character literal macroAndrew Kelley
2016-01-28fix incorrect loading of files over 8192 bytesAndrew Kelley