Chris Lattner
2e3c720e46
fix regex's for floating_literal because "0" is an integer literal not floating.
...
Swift SVN r1396
2012-04-11 22:22:27 +00:00
Chris Lattner
9b2c6acd37
improve comment with some justification.
...
Swift SVN r1374
2012-04-10 23:54:59 +00:00
Chris Lattner
ac61437b8b
by popular demand, reject over-large codepoints.
...
Swift SVN r1371
2012-04-10 23:52:06 +00:00
Chris Lattner
cac963c6d6
reject unicode encodings for surrogate pairs, and reject \x80 and above.
...
This completes unicode validation for \x, \u, and \U.
Swift SVN r1369
2012-04-10 23:26:46 +00:00
Chris Lattner
4ff016d0a8
start diagnosing invalid UTF encodings, more to follow.
...
Swift SVN r1365
2012-04-10 22:02:57 +00:00
Chris Lattner
2b1bcdcdf6
Implement basic encoding to UTF8, giving us the snowman. Codepoint validation comes next.
...
Swift SVN r1364
2012-04-10 21:50:28 +00:00
Chris Lattner
ce7403dd1e
implement IRGen of escapes. High unicode escapes aren't handled yet, but all the
...
basics are.
Swift SVN r1363
2012-04-10 20:59:45 +00:00
Chris Lattner
1bb2443498
document and lex the basic and unicode escape characters.
...
IRGen after lunch.
Swift SVN r1361
2012-04-10 19:30:18 +00:00
Chris Lattner
e31361f174
Progress towards rdar://11216049 - Strings cannot span multiple lines, and \ is an
...
escape character (not yet implemented).
Swift SVN r1360
2012-04-10 18:14:27 +00:00
Chris Lattner
c78bdcff0e
Initial lexer support for string literals. The regex is trivial and will be extended in the future.
...
Swift SVN r1348
2012-04-10 00:38:13 +00:00
Chris Lattner
fbfb76a515
rename 'plus' methods to 'static' methods, resolving:
...
<rdar://problem/10718220> Need a better name than 'plus' for "static" functions
Swift SVN r1340
2012-04-06 17:50:43 +00:00
John McCall
b8b1694564
Complain about file names that aren't valid identifiers.
...
When we divide the world into scripts and modules, this
won't matter for the former. Recognize <stdin> as a
special case; it should instead just always be a script.
Fixes rdar://problem/10986311.
Swift SVN r1181
2012-03-11 09:15:17 +00:00
Eli Friedman
eada7c6558
Make sure we catch 0x/0o/0b which isn't followed by an appropriate digit. Per Chris's comment.
...
Swift SVN r1174
2012-03-10 00:12:43 +00:00
Eli Friedman
6c439ec301
Add grammar for hex/octal/binary literals. Not completely sure this is the grammar we want (how do we want to handle 0b1a?), but it appears to work. Sema already handles hex and binary; still needs a bit of hacking for octal. <rdar://problem/10700832>
...
Swift SVN r1170
2012-03-07 04:01:05 +00:00
Chris Lattner
21c8b4dae9
implement a more-sane floating point literal syntax, adding support for
...
exponents. This resolves rdar://10877508
Swift SVN r1140
2012-03-01 21:42:10 +00:00
Chris Lattner
1076367d73
implement rdar://10962528 - split up the int/fp literal lexing and grammar.
...
This cleans up handling of int/fp literals by splitting them appart at the
lexer level.
Swift SVN r1137
2012-03-01 19:06:55 +00:00
Chris Lattner
578686379d
start updating some dox.
...
Swift SVN r1082
2012-01-18 22:58:18 +00:00
Chris Lattner
f1db6de509
remove the :: token and DCE UnresolvedScopedIdentifierExpr.
...
Swift SVN r1043
2012-01-14 07:00:45 +00:00
Chris Lattner
378f91b07f
add lexer support for the new & terrible 'plus' keyword.
...
Swift SVN r946
2011-12-21 22:17:14 +00:00
Doug Gregor
b1c98e1731
Introduce Lexer::getLocForEndOfToken() to adjust source locations to
...
the end of the current token, and use it for proper translation from
SourceRange to SMRange when printing diagnostics.
Swift SVN r853
2011-11-09 22:03:30 +00:00
Doug Gregor
fc183b9cc3
Decouple the lexer from the ASTContext and specific BufferID. They
...
aren't needed for the lexer proper (which just needs a buffer to dig
through). Also, make it possible to suppress lexer diagnostics merely
by not giving it a diagnostic engine to work with.
Swift SVN r852
2011-11-09 21:49:40 +00:00
Doug Gregor
d0dd4d44bc
Surface the Token and Lexer headers as public headers, since we're
...
going to need to be able to use the lexer from the 'swift' tool itself.
Swift SVN r851
2011-11-09 21:09:49 +00:00
Doug Gregor
cd7a21de83
Introduce support for adding source ranges to diagnostics.
...
We don't yet properly perform the SourceRange -> llvm::SMRange mapping.
Swift SVN r847
2011-11-09 17:53:30 +00:00
Chris Lattner
5c7c1416c1
Sketch out a LangRef description of extensions, and add
...
lexer support for them.
Swift SVN r838
2011-11-08 23:17:58 +00:00
Chris Lattner
9298082ebb
move Diagnostics header to include/swift/AST to match .cpp files.
...
Swift SVN r782
2011-10-22 00:47:35 +00:00
Chris Lattner
dfd529ce3a
rename diags::foo to diag::foo
...
Swift SVN r779
2011-10-22 00:36:19 +00:00
Chris Lattner
2092ddeb54
switch the lexer over to the new diagnostics subsystem. Drop the
...
"no newline at the end of // comment" warning, swift doesn't require
a \n at the end of file.
Swift SVN r770
2011-10-20 21:52:16 +00:00
Chris Lattner
a7c7d64fa0
Switch swift to use SourceLoc instead of SMLoc.
...
Also use the new getAdvancedLoc() method instead of hacking
on SMLoc directly.
Also fix the warning/note/error methods to forward through ASTContext
instead of being replicated everywhere.
Swift SVN r750
2011-10-18 01:22:29 +00:00
Chris Lattner
2d43b8812f
update for mainline API changes.
...
Swift SVN r745
2011-10-16 06:17:27 +00:00
John McCall
c61c807589
Mangle types for all declarations. Save the names of modules and mangle
...
those in, too.
Swift SVN r713
2011-09-18 09:21:42 +00:00
Chris Lattner
9d240a1d18
add lexer and langref support for floating point literals. No AST/CodeGen support yet.
...
Swift SVN r706
2011-09-15 21:29:12 +00:00
John McCall
1e89b0e274
Remove the __builtin type keywords and make the Builtin
...
module export those types.
Also, document the language changes I've been making in this area.
Swift SVN r688
2011-09-04 07:34:01 +00:00
John McCall
6dfa91282d
'float' -> 'float32', 'double' -> 'float64'
...
Swift SVN r654
2011-08-31 19:57:52 +00:00
Chris Lattner
f9b024adb0
implement parser and AST support for trivial (empty) protocol types.
...
Swift SVN r652
2011-08-31 19:43:06 +00:00
John McCall
58b81c8da0
Add builtin float and double types.
...
Swift SVN r650
2011-08-31 18:43:22 +00:00
Chris Lattner
f03486e991
diagnose a bunch of problem cases with operators.
...
Swift SVN r575
2011-08-20 01:29:00 +00:00
Chris Lattner
26f66a8b24
move all the parser headers into lib/Parse since they are now all private.
...
I chose to just delete the -lex action in swift, since it was only useful for
about 10 minutes during bringup and probably never will be again.
Swift SVN r557
2011-08-13 22:51:04 +00:00
Chris Lattner
b8fd157450
rip out the dead "isPrecededByIdentifier" logic from the AST and Lexer.
...
Swift SVN r529
2011-08-12 21:36:25 +00:00
Chris Lattner
c81d4c3c17
lets use isspace here, this gives us \f for free! woo
...
Swift SVN r511
2011-08-12 04:53:00 +00:00
John McCall
4eb22011b6
Make the lexer just determine whether an LP is spaced or not; the
...
parser can consume this as appropriate. For now it isn't, but that
will change.
Swift SVN r509
2011-08-12 02:12:48 +00:00
Chris Lattner
36f5427de3
Make the lexer disambiguate between a ( that is the start of an expression and a ( that is the start of
...
a call argument list.
Swift SVN r508
2011-08-12 01:46:39 +00:00
Chris Lattner
0871b128f8
add support for /**/ comments to the lexer, allow nesting of them since we won't
...
have the #if 0 hack to handle nesting.
Swift SVN r506
2011-08-12 00:37:01 +00:00
Chris Lattner
9e6817b3cd
implement lexer, parser, and dox support for while loops, everything is hooked up now.
...
Swift SVN r502
2011-08-11 20:47:33 +00:00
John McCall
944183d985
Split tok::oper out of tok::identifier. No functionality change.
...
The consumeToken(Tok.getKind()) is terrible, but will disappear when
most of these cases have operators stripped out.
Swift SVN r500
2011-08-11 06:17:31 +00:00
Chris Lattner
39660b5017
add langref and lexer support for return stmt.
...
Swift SVN r492
2011-08-03 22:43:57 +00:00
Chris Lattner
a64c74ec94
Replace lambda keyword with func. One annoying aspect of this that I didn't
...
think about will occur when/if we want to support attributes on func expression.
That should look like "func [attributes]{ ... }" but now that requires looking
beyond that attributes to know if this is a funcdecl or funcexpr. Nothing that
more heroic lookahead can't handle.
Swift SVN r486
2011-08-03 00:28:11 +00:00
Chris Lattner
fdc2dcc7db
rename lexer methods to follow the naming convention and add the ability to lookahead one token.
...
Swift SVN r483
2011-08-03 00:07:43 +00:00
Chris Lattner
c3bbefcbaa
add support for lambda expressions (anonymous functions), which are the thing that
...
func is sugar for. Unfortunately, we can't use 'func' without introducing ambiguity
since decls and exprs can exist in the same context, I'm not wed to 'lambda' as the
keyword, thoughts welcome.
Swift SVN r467
2011-07-31 20:12:20 +00:00
Chris Lattner
0fc77abf5c
Per discussion on swift-dev, unify 'meth' and 'func' syntax into just 'func' syntax
...
where you can optionally declare a receiver type. This is cleaner both conceptually
and in implementation, and eliminates drug references. :)
Swift SVN r444
2011-07-24 20:11:35 +00:00
Chris Lattner
6fbe70dd87
convert TokenKind to a scoped enum, eliminating the old c++'98 hackaround to
...
emulate it.
Swift SVN r442
2011-07-24 19:28:36 +00:00