aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.cpp
AgeCommit message (Collapse)Author
2019-07-06Make anyerror not a keywordhryx
2019-07-04Unicode escapes: stage1 tokenizer and behavior testshryx
2019-06-09different array literal syntax when inferring the sizeAndrew Kelley
old syntax: []i32{1, 2, 3} new syntax: [_]i32{1, 2, 3} closes #1797
2019-05-29change `use` to `usingnamespace`Andrew Kelley
See #2014 `use` syntax is still accepted for now. `zig fmt` automatically updates code. After a release cycle the old syntax will be removed.
2019-05-16stage1 tokenizer: add more missing break statementsAndrew Kelley
2019-05-16Add break after digit_value check in TokenizeStateCharCodeSamTebbs33
2019-03-25implement allowzero pointer attributeAndrew Kelley
closes #1953 only needed for freestanding targets. also adds safety for `@intToPtr` when the address is zero.
2019-03-23character literals: allow unicode escapesAndrew Kelley
also make the documentation for character literals more clear. closes #2089 see #2097
2019-03-23remove octal and hex floats from the languageAndrew Kelley
closes #2093 This is technically a breaking change but I would be surprised if anyone was actually using this feature.
2019-03-22float literals now parse using musl's 128 bit float codeAndrew Kelley
fixes float literals not having 128 bit precision
2019-03-22Simplify hex-float parsing codeMarc Tiehuis
2019-03-21hex float parsing: solve another caseAndrew Kelley
this works now: 0x1.edcb34a235253948765432134674fp-1
2019-03-21fix parsing of large hex float literalsAndrew Kelley
closes #2083
2019-02-10added C pointer type and implicit int-to-ptr for this typeAndrew Kelley
See #1059
2019-02-06thread local storage working for linux x86_64Andrew Kelley
2019-01-30Move tokenizer error location to offending charMatthew McAllister
Previously, it pointed to the start of the current token, but this made it difficult to tell where the error occurred when it was, say, in the middle of a string.
2019-01-29simpler implementation of `&&` and `||` hintsAndrew Kelley
This accomplishes the same goal, but with less changes, so that I can backport copy elision stuff easier.
2019-01-25Hint at use of and/or when &&/|| is improperly used (#1886)kristopher tate
2018-11-17rename `section` keyword to `linksection`Andrew Kelley
add zig fmt support for this syntax closes #1152
2018-11-13New Zig formal grammar (#1685)Jimmi Holst Christensen
Reverted #1628 and changed the grammar+parser of the language to not allow certain expr where types are expected
2018-09-26Tweak SYMBOL_CHAR define in tokenizer.cppWink Saville
Make it a little clearer what a SYMBOL_CHAR is, use ALPHA instead of ALPHA_EXCEPT_C and case 'c', which is ALPHA's definition.
2018-09-13remove `this`. add `@This()`.Andrew Kelley
closes #1283
2018-07-18fix invalid character test on windowsAndrew Kelley
2018-06-28Correct hex-float parsingMarc Tiehuis
Unblocks #495.
2018-06-10breaking syntax change: orelse keyword instead of ?? (#1096)Andrew Kelley
use the `zig-fmt-optional-default` branch to have zig fmt automatically do the changes. closes #1023
2018-06-09breaking syntax change: ??x to x.? (#1095)Andrew Kelley
See #1023 This also renames Nullable/Maybe to Optional
2018-06-02introduce [*] for unknown length pointersAndrew Kelley
See #770 Currently it does not have any different behavior than `*` but it is now recommended to use `[*]` for unknown length pointers to be future-proof. Instead of [ * ] being separate tokens as the proposal suggested, this commit implements `[*]` as a single token.
2018-03-24add promise->T syntax parsingAndrew Kelley
closes #857
2018-02-19add async, await, suspend, resume, cancel keywordsAndrew Kelley
See #727
2018-02-14std.zig.parser understands try. zig fmt respects a double line break.Andrew Kelley
2018-02-02*WIP* error sets - correctly resolve inferred error setsAndrew Kelley
2018-01-23replace %defer with errdeferAndrew Kelley
See #632 now we have 1 less sigil
2018-01-22add new kind of test: generating .h files. and moreAndrew Kelley
* docgen supports obj_err code kind for demonstrating errors without explicit test cases * add documentation for `extern enum`. See #367 * remove coldcc keyword and add @setIsCold. See #661 * add compile errors for non-extern struct, enum, unions in function signatures * add .h file generation for extern struct, enum, unions
2018-01-09remove %% prefix operatorAndrew Kelley
See #632 closes #545 closes #510 this makes #651 higher priority
2018-01-07replace `a %% b` with `a catch b`Andrew Kelley
See #632 better fits the convention of using keywords for control flow
2018-01-07replace `%return` with `try`Andrew Kelley
See #632 better fits the convention of using keywords for control flow
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