Comments (7)
I'd like to also add an "auto" keyword for function syntax, which has the compiler infer the type (if possible). This would be a gmqcc only feature and would error in any other standard.
from gmqcc.
Doable. How about 'auto' only for function return-types, and let
for variable declarations (or var
, see #4, we just need something)
auto foo() {
let e = self.attacker; // an entity
e.foocount++;
return e;
}
Thoughts?
(We should open a separate ticket for this probably)
from gmqcc.
My problem with the let keyword is it has a certain instilling characteristic of a typical lambda construct. So using is as a variant type like this seems a bit intrusive (if we have auto hinting the compiler to infer, as well as let). I'd imagine they'd do the same thing anyways.
from gmqcc.
Right, the above code should definitely use auto e = self.attacker
. However when using struct
types which have not yet been declared, auto
might not be the best choice. var
would just make more sense, and it already exists in original QC.
auto foo() {
auto e = self.attacker;
e.foocount++;
return e;
}
auto foo() {
var AStruct x = self.somestruct;
if (x.something) whatever();
} // foo becomes 'void()'
struct AStruct {
finally the type gets defined
}
from gmqcc.
new-syntax branch contains the new implementation - I rewrote the whole field/global parsing code. It's much cleaner and unified. It's not "strict" enough yet though (ie. doesn't error properly on new-style functions with -std=qcc
, but it is ready to be merged once we're aiming for 0.2)
from gmqcc.
now errors on -std=qcc
, and also contains the var
keyword to create global field-pointers without creating fields, AND fixes a bug which caused global/local vector field pointers to only have 1 component generated. Now behaves correctly, and fteqcc-compliant, whereas -std=gmqcc
autoenabled -fadjust-vector-fields
from gmqcc.
Closing this - keep in mind it's not merged to master yet.
from gmqcc.
Related Issues (20)
- internal error when a qc function is called with an empty parameter HOT 2
- How should I compile this? HOT 1
- Segfault when variable and typedef share name
- Wrong column numbers
- Broken XOR assign HOT 1
- enum : flag uses incorrect incrementation with =
- frame macro syntax broken with C-style functions HOT 1
- operator != and == does not work with comparisons against nil HOT 1
- invalid types for variable argument function assignment
- Broken char literals get accepted
- Inconsistent math with multiple assignments to the same variable HOT 2
- for loop bug HOT 7
- if(cond) + break; issue with -O3 HOT 1
- if bug HOT 1
- multiple constants with same value HOT 1
- A way to run GMQCC as a linter HOT 5
- Repository and fork
- failed to open `progs.src` for reading when in subdirectory
- Deduplicate emitted opcodes variants
- CRC mismatch when using C-Style Function Declaration on System Entity Fields
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gmqcc.