Aparajita Fishman
6bac934d0c
Fixed: changed indentation of generated code to Cappuccino standard of 4 spaces.
2013-05-18 18:42:26 -04:00
Alexander Ljungberg
501310c058
Formatting: OldBrowserCompatibility.js.
...
Refs #1929 .
2013-05-16 15:24:24 -07:00
Martin Carlberg
b3e6eb74b2
Fixed: Reset all the macros when compiling a new file in the default implementation of the macro store.
2013-05-16 12:07:44 +02:00
Martin Carlberg
8145df9613
Fixed: Removed all uses of preprocess macros in the compiler
2013-05-13 16:23:12 +02:00
Martin Carlberg
ee9b04944a
Merge branch 'master' of https://github.com/cappuccino/cappuccino into preprocess
2013-05-06 16:24:54 +02:00
Martin Carlberg
e9ca7c7395
Fixed: IE8 Browser support.
...
The compiler can now run in IE8. Also found the use of the function .indexOf on Arrays in CPView.j.
It is not supported in IE8.
Added a new file (OldBrowserCompatibility.js) in the Objective-J framework that will add functions if they are not supported in the javascript runtime.
2013-05-06 16:17:09 +02:00
Martin Carlberg
14ee789df4
Fixed: Mark correct column position in 'Expected a Semicolon' errors in the parser.
2013-04-24 10:12:42 +02:00
Martin Carlberg
b6fd6a15f0
Fixed: Removed extra spaces in code generation between 'else' and 'if' in 'else if' statements
2013-04-23 17:07:26 +02:00
Martin Carlberg
e35bfaf96c
Fixed: Better looking code generation with correct indentation for 'if' - 'else if' statements
2013-04-23 15:48:25 +02:00
Aparajita Fishman
7ec660c509
New: record the source filename in SyntaxError.
2013-04-20 13:24:50 -04:00
Martin Carlberg
689ab09555
New: Now supports 'defined' operator, which lets you check whether macros are defined in the middle of an ‘#if’.
...
Also the evaluation of expressions are now lazy.
2013-04-11 09:37:40 +02:00
Martin Carlberg
30ee1ad8cd
New: Handles line continue token '\' on lines starting with '#'
...
We now support lines like this:
#define StopButtonTitle() \
CPLocalizedString(@"Stop", @"Stop button title")
2013-04-11 09:32:41 +02:00
Aparajita Fishman
cc2503ac0f
Fixed: CFBundle.prototype.bundleURL() did not return an absolute URL.
...
CFBundle internally stores its URL in relative form, and returned that relative URL in the bundleURL() function. However, in Cocoa an absolute URL is returned. It is reasonable to assume an absolute URL would be expected by some asking for the bundle's URL. Even within CFBundle, most times bundleURL() is called it is followed with absoluteURL().
This commit returns an absolute URL from bundleURL().
2013-04-06 15:51:09 -04:00
Aparajita Fishman
486bff44df
Fixed: wrong display name for CFBundle.bundleContainingURL.
2013-04-06 15:48:41 -04:00
Aparajita Fishman
a3730812bc
New: CFBundle.identifier, CFBundle.bundleWithIdentifier, CPBundle -bundleWithIdentifier.
...
Finding a bundle by identifier is theoretically better than using a class.
2013-04-05 23:16:05 -04:00
Martin Carlberg
84df301f3e
New: #if macro statement works for simple literals but not for macro identifiers and defined keyword
2013-03-28 22:43:26 +01:00
Martin Carlberg
2751f4fea9
New: Added missed #ifdef derective
2013-03-27 14:52:05 +01:00
Martin Carlberg
c21cfeb28e
New: Added #ifdef, #ifndef, #else, #endif and #undef macro derectives
2013-03-27 14:50:55 +01:00
Martin Carlberg
8707247008
New: Always generate code when compiling
2013-03-27 14:45:25 +01:00
Martin Carlberg
89457845f9
Fixed: Made some smaller code generation changes to get better formatted compiled code
2013-03-21 14:32:21 +01:00
Martin Carlberg
1842d7127a
New: The generated code will now have correct indentation.
2013-03-21 11:33:13 +01:00
Martin Carlberg
ecc1e774b9
New: Added macro/identifier concatenation with the '##' operator
...
Example:
#define first Martin
#define second Carlberg
var first##second = 13;
Compiles to:
var MartinCarlberg = 13;
Example 2:
#define _function(inline) function inline { return _##inline; }
#define _CGPointMake(x_, y_) { x:x_, y:y_ }
_function(CGPointMake(x, y))
Compiles to:
function CGPointMake (x, y) {
return {x: x, y: y};
}
2013-03-20 21:00:36 +01:00
Martin Carlberg
fa18095538
Fixed: Does not add extra parentheses for expression operators with the same precedence
2013-03-20 20:47:27 +01:00
Martin Carlberg
92ac8569b3
New: Full support for generate code instead of copy
...
The new compiler can now generate code. The old way of copy and alter the source
code is still supported.
2013-03-17 21:00:24 +01:00
Martin Carlberg
0c982b0999
Fixed: An ExpressionStatement with a Send message expression can be parsed wrongly
...
When a statement ends without a semicolon and a Send message expression is on the next line it was wrongly parsed as a single Send message expression. It should be an ExpressionStatement with a Send message expression inside.
2013-03-17 20:52:21 +01:00
Martin Carlberg
bef0ca18c6
New: New option to generate code for the objjc tool
...
A new option flag '-G' can be added to let the compiler generate the code instead of copy and alter it from the source code
2013-03-17 20:45:34 +01:00
Martin Carlberg
22cdbd7ec7
Merge branch 'master' of https://github.com/cappuccino/cappuccino into preprocess
...
Conflicts:
Objective-J/ObjJAcornCompiler.js
Objective-J/acorn.js
2013-03-12 11:20:56 +01:00
Martin Carlberg
362f3b890e
Added first try for compiler to generate code
2013-03-12 09:22:26 +01:00
Alexander Ljungberg
5f2d1b8255
Merge branch 'master' of github.com:cappuccino/cappuccino
2013-03-10 17:41:42 +00:00
Alexander Ljungberg
483bd16a2d
Formatting: simplify code slightly.
2013-03-10 17:40:58 +00:00
Alexander Ljungberg
b53616ead3
New: @deref(<any idempotent expression>).
...
This change makes it possible to @deref any expression, such as a conditional expression, as long as the expression doesn't have side effects.
The reason not to allow dereferencing of expressions with side effects is that we might need to evaluate the expression twice in certain uses of deref, which is not obvious when you look at the deref operator in plain code.
2013-03-10 17:32:28 +00:00
Alexander Ljungberg
f201ab0721
New: update operators on references, such as @deref(x)++.
...
This fix implements support for both prefix and postfix update operators on a dereference.
2013-03-10 14:02:37 +00:00
Alexander Ljungberg
34faf362d1
New: @ref and @deref in Objective-J 2.0.
2013-03-10 12:17:43 +00:00
Aparajita Fishman
eb6cdfe97c
Typo: fixed spelling in comment
2013-03-09 14:35:16 -05:00
Martin Carlberg
5481ce25b2
Fixed: Will compiler or issue correct error message when wrong case is used in filename on @import statements
2013-03-07 17:48:21 +01:00
Antoine Mercadal
5312524871
Define navigator.userAgent as another ugly Rhino fix
2013-02-28 15:41:14 -08:00
Martin Carlberg
c17053f71a
Removed test line
2013-02-26 08:53:12 +01:00
Alexander Ljungberg
472848da91
New: array literals in Objective-J 2.0.
...
Array literals look like `@[a, b, c]`.
This syntax is supported for completeness and source compatibility, but are not terribly useful since standard JavaScript arrays are toll-free bridged to CPArray.
Array literals could be handy if you're replacing CPArray with your own implementation.
2013-02-25 14:57:05 +00:00
Alexander Ljungberg
5200f945fe
New: dictionary literals in Objective-J 2.0.
2013-02-25 14:24:29 +00:00
Martin Carlberg
e8e87b3b83
Added recursive token transformer and preprocessor tokenizer
2013-02-24 22:26:27 +01:00
Martin Carlberg
340f1e3258
Made the acorn parser able to run outside of the Cappuccino world
2013-02-24 22:25:00 +01:00
Martin Carlberg
529e703ddd
Merge branch 'master' of https://github.com/cappuccino/cappuccino into objj_compiler2
2013-02-24 15:45:56 +01:00
aparajita
c401e3b55e
Merge pull request #1497 from BlairDuncan/afterDocumentLoadFix
...
fix to enables the startup loader to continue if dynamically loaded
2013-02-23 18:01:28 -08:00
Martin Carlberg
699ef14b4e
Merge with latest acorn compiler
2013-02-21 12:57:19 +01:00
Martin Carlberg
8c68854d1d
Fixed local variable that is declared as a global
2013-02-19 20:25:57 +01:00
Martin Carlberg
64a38a2aef
Refactored how maybe warnings is handled and prepared for new "local variable hides global variable" warning. The warning is disabled because there are to many warning in the Cappuccino frameworks right now.
2013-02-19 20:22:42 +01:00
Martin Carlberg
cccfe7268b
Fixed better comment
2013-02-19 17:48:16 +01:00
Martin Carlberg
c03697c0a6
Fixed support for IE8
2013-02-19 17:47:34 +01:00
Martin Carlberg
32bf87c0c3
Fixed typo
2013-02-19 17:46:24 +01:00
Aparajita Fishman
ff35b4a4b6
It turns out function.displayName is no longer necessary with the latest Safari, Chrome, FireFox, and even IE 9+. All of them correctly identify the function name.
2013-02-18 16:13:13 -05:00