Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email
?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Home
About
Team
Rules
Stats
Status
Sitemap
Chat
Downloads
Forum
News
Our Projects
Major Community Projects
Recent Posts
Unread Posts
Replies
Tools
SourceCoder3
Other Things...
Omnimaga Radio
TI-83 Plus ASM File Unsquisher
Z80 Conversion Tools
IES TI File Editor
Free RAM areas
Comprehensive Getkeyr table
URL Shortener
Online Axe Tilemap Editor
Help
Contact Us
Change Request
Report Issue/Bug
Team
Articles
Members
View the memberlist
Search For Members
Buddies
Login
Register
Omnimaga
»
Forum
»
General Discussion
»
Technology and Development
»
Computer Projects and Ideas
»
The dawn of a new OOPL
« previous
next »
Print
Pages:
1
...
3
4
[
5
]
6
Go Down
Author
Topic: The dawn of a new OOPL (Read 25904 times)
0 Members and 1 Guest are viewing this topic.
BlakPilar
LV8
Addict (Next: 1000)
Posts: 734
Rating: +44/-1
Re: The dawn of a new OOPL
«
Reply #60 on:
August 19, 2011, 12:33:08 pm »
UPDATE
It's been 24 hours, so this double post is allowed
My scanner and parser are now done in a simple sense. By that I mean that they can recognize arithmatic operations, some keywords, the four current modifiers, and non-dimensional variable declarations (as well as errors!). I'm going to be changing the way arrays/matrices are setup, though, basing it off of HOMER's suggestion.
One step closer
«
Last Edit: August 19, 2011, 04:20:07 pm by BlakPilar
»
Logged
Binder News
LV8
Addict (Next: 1000)
Posts: 785
Rating: +46/-3
Zombie of Tomorrow
Re: The dawn of a new OOPL
«
Reply #61 on:
August 19, 2011, 12:56:38 pm »
I didn't get much done as I spent the whole of yesterday evening making Mineopoly on my Minecraft server with my friend. Lol.
Logged
Spoiler
For
userbars
:
Hacker-in-training! Z80 Assembly Programmer Axe Programmer
C++ H4X0R Java Coder I <3 Python!
Perdidisti ludum Cerebrum non habes
"We are humans first, no matter what."
"Fame is a vapor, popularity an accident, and riches take wings. Only one thing endures, and that is character."
Spoiler
For
Test Results
:
BlakPilar
LV8
Addict (Next: 1000)
Posts: 734
Rating: +44/-1
Re: The dawn of a new OOPL
«
Reply #62 on:
August 20, 2011, 11:50:44 pm »
UPDATE
Alright, I've been working on this for the last three hours because I dun goof'd a lot and I had many of the destructive "brain-farts", but classes definitions are now parsed correctly!
By that I mean "global class hello {}" is now a valid statement.
Logged
+1/-0 karm for this message
Binder News
LV8
Addict (Next: 1000)
Posts: 785
Rating: +46/-3
Zombie of Tomorrow
Re: The dawn of a new OOPL
«
Reply #63 on:
August 21, 2011, 02:59:09 am »
Oh. Yay. Well, I got a Tokenizer done, which I can use, and a Logger framework started, which will llow for variable level of debug information to be displayed, depending on a command line flag probably.
EDIT:
Uploaded Finished tokenizer and unfinished Logger framework.
«
Last Edit: August 21, 2011, 03:02:00 am by Binder News
»
Logged
Spoiler
For
userbars
:
Hacker-in-training! Z80 Assembly Programmer Axe Programmer
C++ H4X0R Java Coder I <3 Python!
Perdidisti ludum Cerebrum non habes
"We are humans first, no matter what."
"Fame is a vapor, popularity an accident, and riches take wings. Only one thing endures, and that is character."
Spoiler
For
Test Results
:
Scipi
Omni Kitten Meow~ =^ω^=
LV10
31337 u53r (Next: 2000)
Posts: 1547
Rating: +192/-3
Meow :3
Re: The dawn of a new OOPL
«
Reply #64 on:
September 18, 2011, 01:18:56 pm »
What's the progress on this? Is this still alive?
Logged
Imma Cat! =^_^=
(It's an emoticon now!)
Spoiler
For
Things I find interesting
:
Spoiler
For
AI Programming
:
NeuralNets
Genetic Programming
Spoiler
For
Shameless advertising
:
Like me on Facebook ^w^
Youtube
LinkedIn
Spoiler
For
OldSig
:
Spoiler
For
Projects!
:
Daemons
TileCat
MindF*ck
System Crash
Graviter [Computer Version]
Spoiler
For
IMPORTANT NEWS!
:
Late last night, Quebec was invaded by a group calling themselves, "Omnimaga". Not much is known about these mysterious people except that they all carried calculators of some kind and they all seemed to converge on one house in particular. Experts estimate that the combined power of their fabled calculators is greater than all the worlds super computers put together. The group seems to be holding out in the home of a certain DJ_O, who the Omnimagians claim to be their founder. Such power has put the world at a standstill with everyone waiting to see what the Omnimagians will do...
Wait... This just in, the Omnimagians have sent the UN a list of demands that must be met or else the world will be "submitted to the wrath of Netham45's Lobster Army". Such demands include >9001 crates of peanuts, sacrificial blue lobsters, and a wide assortment of cherry flavored items. With such computing power stored in the hands of such people, we can only hope these demands are met.
In the wake of these events, we can only ask, Why? Why do these people make these demands, what caused them to gather, and what are their future plans...
BlakPilar
LV8
Addict (Next: 1000)
Posts: 734
Rating: +44/-1
Re: The dawn of a new OOPL
«
Reply #65 on:
September 18, 2011, 01:28:48 pm »
Yeah, it's still being worked on on my part, but I haven't really had much time to do much what with school starting and everything. Plus we had a movie theater open near me sooo... lol
I ran into a snag with strings not processing correctly the last time I worked on it, but integers work for the most part.
Logged
Binder News
LV8
Addict (Next: 1000)
Posts: 785
Rating: +46/-3
Zombie of Tomorrow
Re: The dawn of a new OOPL
«
Reply #66 on:
September 24, 2011, 10:34:12 am »
Here. I've been busy as well, but I could still take a look at it.
Logged
Spoiler
For
userbars
:
Hacker-in-training! Z80 Assembly Programmer Axe Programmer
C++ H4X0R Java Coder I <3 Python!
Perdidisti ludum Cerebrum non habes
"We are humans first, no matter what."
"Fame is a vapor, popularity an accident, and riches take wings. Only one thing endures, and that is character."
Spoiler
For
Test Results
:
BlakPilar
LV8
Addict (Next: 1000)
Posts: 734
Rating: +44/-1
Re: The dawn of a new OOPL
«
Reply #67 on:
September 24, 2011, 01:16:32 pm »
Alright. I've attached what I have so far and a sample code file I've been working with. Strings are fine until you throw in an escape character (i.e. \n, \t, etc.) and integers don't register for some reason. I haven't really gone in-depth with the debugging, so I'm not entirely sure what it is. I might be able to work on it for a bit later today/tonight.
Logged
+2/-0 karm for this message
Binder News
LV8
Addict (Next: 1000)
Posts: 785
Rating: +46/-3
Zombie of Tomorrow
Re: The dawn of a new OOPL
«
Reply #68 on:
September 24, 2011, 04:14:32 pm »
BlakPilar, in the file Scanner.cs, line 108. Change input.Read() to input.Peek(). With the read, you were consuming it twice (meaning that you ended up consuming the character after it as well, without reading it).
EDIT: Post 701! I'm an Addict! Oh, that kinda sounds weird, doesn't it? Well, I'm Level 8!
«
Last Edit: September 24, 2011, 04:18:06 pm by Binder News
»
Logged
Spoiler
For
userbars
:
Hacker-in-training! Z80 Assembly Programmer Axe Programmer
C++ H4X0R Java Coder I <3 Python!
Perdidisti ludum Cerebrum non habes
"We are humans first, no matter what."
"Fame is a vapor, popularity an accident, and riches take wings. Only one thing endures, and that is character."
Spoiler
For
Test Results
:
BlakPilar
LV8
Addict (Next: 1000)
Posts: 734
Rating: +44/-1
Re: The dawn of a new OOPL
«
Reply #69 on:
September 24, 2011, 04:19:49 pm »
Oh, duh haha. And maybe it was bytes not getting read correctly... I'll check it later and see if I have any more .Read()/.Peek() errors. (That is, unless you beat me to it
)
EDIT: Yeah, I know the difference between Read and Peek lol. I was probably just not thinking at the time. And congrats!
«
Last Edit: September 24, 2011, 04:21:31 pm by BlakPilar
»
Logged
BlakPilar
LV8
Addict (Next: 1000)
Posts: 734
Rating: +44/-1
Re: The dawn of a new OOPL
«
Reply #70 on:
November 29, 2011, 05:18:54 pm »
Okay, so, I'm starting to work on this again, but it's not going to be getting my full attention. I'm thinking about possible syntax changes to make it a little easier to code in, because I want this to be an easy and powerful language. I'll be going through all of the suggestions mentioned before in this post and will listen to any future ones. I'll also need to brush up on my
System.Reflection.Emit
, so that will take some time, but hopefully not much. So yeah... this is the announcement of a slow reboot, I guess!
EDIT: In my spare time, and when I get frustrated with BexIDE, I'll be working on an
EBNF
definition for the language. I'll upload it when it is sufficiently complete for my liking.
«
Last Edit: November 30, 2011, 06:18:33 pm by BlakPilar
»
Logged
BlakPilar
LV8
Addict (Next: 1000)
Posts: 734
Rating: +44/-1
Re: The dawn of a new OOPL
«
Reply #71 on:
December 03, 2011, 06:53:54 pm »
UPDATE
First thing's first: I've decided on a name change. The new name for this OOPL is now
Alpha.NET
.
HOMER-16
and I have also written a complete (well, mostly complete) EBNF which will help with understanding syntax. I might change one or two things, maybe some keywords (I just realized I need to define all reserved words...), but otherwise this will stay the same. I'm going to be rewriting what I had from my previous compiler because I'm pretty sure I did some things wrong, and it was very... static. So I guess this is becoming my second primary project.
Spoiler
For
EBNF
:
<stmt> := [<modifier>] <type> <ident> [ = <expr> | (<expr>)]
| <ident> = <expr>
| <compound_stmt>
| <jump_stmt>
| <stmt> ; <stmt>
| <ident> (<expr>);
| [<ident> = ] <ident>, ‘.’, <method>() [, ‘.’ <method>() ...]
| <ident> = <ident>[, ‘.’, <ident>]
| <ident_block_call>
<expr> := <type.value>
| <arith_expr>
| <ident>
<type> := str | int | dbl | flt | byte | bool | char | class | enum | struct | void | auto
<arith_expr> := <expr> <arith_op> <expr>
<arith_op> := + | - | * | / | % | ^ | ++ | -- | += | -= | *= | /= | %=
| ^= | >> | << | <bool> ? <stmt> : <stmt>
<ident> := <letter> [,<alpha_numeric>*]
<alpha_numeric> := <letter> | <digit> | ‘_’
<int> := <digit>+
<digit> := 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<dbl> := <digit>.<digit>*[d | D] - 15 max
<flt> := <digit>.<digit>*[f | F] - 7 max
<byte> := 0x<hex> | $<hex> | <hex>h | <binary>b
<hex> := ‘0’ | ‘1’ | ‘2’ | ‘3’ | ‘4’ | ‘5’ | ‘6’ | ‘7’ | ‘8’ | ‘9’ | ‘A’ |
‘B’ | ‘C’ | ‘D’ | ‘E’ | ‘F’ | ‘a’ | ‘b’ | ‘c’ | ‘d’ | ‘e’ | ‘f’ |
<binary>:= ‘0’ | ‘1’
<bool> := true | !0 | false | 0
<char> := <any ASCII equivalent: 0 - 255>
<str> := “ <string_elem>* “
<string_elem> := <any char including escape chars>
<escape_chars> := \a | \b | \f | \n | \r | \t | \x | \\ | \” | \’ | \0
<class> := [<modifier>] class <name> [: <class>* | <struct>*, <interface>*] <compound_stmt>
<struct>:= [<modifier>] struct <name> [: <class>* | <struct>*, <interface>*] <compound_stmt>
<modifier> := public | private | static | sealed | abstract | virtual
<loop> := for [<ident>] (<numeric_ident>; <numeric_ident> <comparison> - '==' <numeric_ident>; <numeric_ident> <arith_op>) { <stmt> }
| do [<ident>] { <stmt> } while (true)
| while [<ident>] (true) { <stmt> }
<numeric_ident>:= int | flt | dbl | byte
<comparison> := < | > | <= | >= | == | !=
<enum> := [<modifier>] enum <name> { <enum_list> }
<enum_list> := <ident> [‘,’] | <ident> = <expr> [‘,’]
<name> := ident
<letter>:= ‘A’ | ‘a’ | ‘B’ | ‘b’ | ‘C’ | ‘c’ | ‘D’ | ‘d’ | ‘E’ | ‘e’ | ‘F’
| ‘f’ | ‘G’ | ‘g’ | ‘H’ | ‘h’ | ‘I’ | ‘i’ | ‘J’ | ‘j’ | ‘K’ | ‘k’
| ‘L’ | ‘l’ | ‘M’ | ‘m’ | ‘N’ | ‘n’ | ‘O’ | ‘o’ | ‘P’ | ‘p’ | ‘Q’
| ‘q’ | ‘R’ | ‘r’ | ‘S’ | ‘s’ | ‘T’ | ‘t’ | ‘U’ | ‘u’ | ‘V’ | ‘v’
| ‘W’ | ‘w’ | ‘X’ | ‘x’ | ‘Y’ | ‘y’ | ‘Z’ | ‘z’
<compound_stmt>:= ‘{’, <stmt>*, ‘}’
<control_line> := ‘#’, ‘def ’, <ident>
| ‘#’, ‘undef ’, <ident>
| ‘#’, ‘if ’, <ident> (* ident must have been declared using #def *)
| ‘#’, ‘if ’, <const_expr>
| ‘#’, ‘elif ’ <ident>
| ‘#’, ‘elif ’ <const_expr>
| ‘#’, ‘else ’ <ident>
| ‘#’, ‘endif’
| ‘#’, ‘bldt ’, <build_type>
<build_type> := console | form | lib
<const_expr> := any “hard coded” expression resulting in <bool>
<jump_stmt> := break | cont | ret | lbl | goto
<switch_block> := case <ident> {<type>: <stmt>}
<if> := if [<ident>] (true) {<stmt>}
<logic_expr> := && | ‘||’ | ‘!|’ | !
<self> := this
<void> := NULL
<ident_block_call> := <ident>,'<',<numeric_ident>,'>'
<method>:= [<ident>,'.' | <self>,'.'] <name>(<params>)
<params>:= <type> <ident>*
Project Summary
AST.............90%
Scanner.........10%
Validator........0%
Parser...........0%
IL Generator.....0%
IDE..............0%
=-=-=-=-=-=-=-=-=-=
Overall.........17%
«
Last Edit: December 06, 2011, 04:26:49 pm by BlakPilar
»
Logged
BlakPilar
LV8
Addict (Next: 1000)
Posts: 734
Rating: +44/-1
Re: The dawn of a new OOPL
«
Reply #72 on:
December 06, 2011, 04:35:20 pm »
Well, nothing really to update as of yet, but I have a question. Would it help to have something like $428F automatically converted to an array like {$42, $8F} or an integer/double (17,039 in this case)? So you could do something like
byte[] arr = $428F; //arr == {$42, $8F}
or
int b = $428F; //b == 17039
. It's not a guarantee that it'll work, but I figured it'd be helpful. Also, possible minor syntax changes so I can call the language my own.
But thanks to anyone still following this
I have yet to go through this topic again, but if you have one, please share suggestions with me!
EDIT: Also, when I have everything but the IL Generator done, I'll be uploading my source. Hopefully by then I'll have my website all setup and running.
Project Summary
AST............100%
Scanner........100%
Validator........5%
Parser...........0%
IL Generator.....0%
IDE..............0%
=-=-=-=-=-=-=-=-=-=
Overall.........34%
«
Last Edit: December 06, 2011, 04:38:25 pm by BlakPilar
»
Logged
Scipi
Omni Kitten Meow~ =^ω^=
LV10
31337 u53r (Next: 2000)
Posts: 1547
Rating: +192/-3
Meow :3
Re: The dawn of a new OOPL
«
Reply #73 on:
December 06, 2011, 07:21:32 pm »
For '{}' could they be "[[]]" instead? So:
Code:
[Select]
while(Arg)
[[
//Code
]]
Logged
Imma Cat! =^_^=
(It's an emoticon now!)
Spoiler
For
Things I find interesting
:
Spoiler
For
AI Programming
:
NeuralNets
Genetic Programming
Spoiler
For
Shameless advertising
:
Like me on Facebook ^w^
Youtube
LinkedIn
Spoiler
For
OldSig
:
Spoiler
For
Projects!
:
Daemons
TileCat
MindF*ck
System Crash
Graviter [Computer Version]
Spoiler
For
IMPORTANT NEWS!
:
Late last night, Quebec was invaded by a group calling themselves, "Omnimaga". Not much is known about these mysterious people except that they all carried calculators of some kind and they all seemed to converge on one house in particular. Experts estimate that the combined power of their fabled calculators is greater than all the worlds super computers put together. The group seems to be holding out in the home of a certain DJ_O, who the Omnimagians claim to be their founder. Such power has put the world at a standstill with everyone waiting to see what the Omnimagians will do...
Wait... This just in, the Omnimagians have sent the UN a list of demands that must be met or else the world will be "submitted to the wrath of Netham45's Lobster Army". Such demands include >9001 crates of peanuts, sacrificial blue lobsters, and a wide assortment of cherry flavored items. With such computing power stored in the hands of such people, we can only hope these demands are met.
In the wake of these events, we can only ask, Why? Why do these people make these demands, what caused them to gather, and what are their future plans...
BlakPilar
LV8
Addict (Next: 1000)
Posts: 734
Rating: +44/-1
Re: The dawn of a new OOPL
«
Reply #74 on:
December 06, 2011, 07:25:51 pm »
Of course! Easily done!
Logged
Print
Pages:
1
...
3
4
[
5
]
6
Go Up
« previous
next »
Omnimaga
»
Forum
»
General Discussion
»
Technology and Development
»
Computer Projects and Ideas
»
The dawn of a new OOPL