Omnimaga: The Coders Of Tomorrow
Welcome, Guest. Please login or register.
 
Omnimaga: The Coders Of Tomorrow
25 May, 2013, 09:22:09 *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
   home   news downloads projects tutorials misc forums rules new posts irc about Login Register  
+-OmnomIRC

You must Register, be logged in and have at least 40 posts to use this shout-box! If it still doesn't show up afterward, it might be that OmnomIRC is disabled for your group or under maintenance.

Note: You can also use an IRC client like mIRC, X-Chat or Mibbit to connect to an EFnet server and #omnimaga.

Pages: 1 ... 3 4 [5] 6   Go Down
  Print  
Author Topic: The dawn of a new OOPL -  (Read 3866 times) Bookmark and Share
0 Members and 1 Guest are viewing this topic.
BlakPilar
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 20 February, 2013, 02:38:22
Date Registered: 16 July, 2011, 02:50:55
Posts: 735


Topic starter
Total Post Ratings: +43

View Profile
« Reply #60 on: 19 August, 2011, 18:33:08 »
0

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 Cheesy
« Last Edit: 19 August, 2011, 22:20:07 by BlakPilar » Logged
Binder News
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 13 May, 2013, 22:50:58
Date Registered: 26 October, 2010, 22:05:05
Location: In a pit on an island somewhere in the Atlantic.
Posts: 779


Total Post Ratings: +43

View Profile
« Reply #61 on: 19 August, 2011, 18:56:38 »
0

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)
********
Offline Offline

Gender: Male
Last Login: 20 February, 2013, 02:38:22
Date Registered: 16 July, 2011, 02:50:55
Posts: 735


Topic starter
Total Post Ratings: +43

View Profile
« Reply #62 on: 21 August, 2011, 05:50:44 »
+1

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! Cheesy By that I mean "global class hello {}" is now a valid statement.
Logged
Binder News
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 13 May, 2013, 22:50:58
Date Registered: 26 October, 2010, 22:05:05
Location: In a pit on an island somewhere in the Atlantic.
Posts: 779


Total Post Ratings: +43

View Profile
« Reply #63 on: 21 August, 2011, 08:59:09 »
0

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.

* Tokenizer.cs (5 KB - downloaded 39 times.)
* Logger.cs (4.55 KB - downloaded 31 times.)
« Last Edit: 21 August, 2011, 09:02:00 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)
**********
Offline Offline

Gender: Male
Last Login: Today at 09:06:06
Date Registered: 12 September, 2010, 08:35:24
Location: Lost Town
Posts: 1386


Total Post Ratings: +146

View Profile WWW
« Reply #64 on: 18 September, 2011, 19:18:56 »
0

What's the progress on this? Is this still alive?
Logged



Spoiler for Things I find interesting:
Spoiler for AI Programming:
Spoiler for Historical warfare/Formations(Warning: Large images):
Phalanx

Testudo

Schiltron

Better version
Terico

Line

Square

Spoiler for Shameless advertising:

Spoiler for OldSig:
Imma Cat! =^_^= (Make this an emoticon!)





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...

Spoiler for Misc:


Spoiler for Goosed stuff:
FUSION-TIME GO!
BlakPilar
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 20 February, 2013, 02:38:22
Date Registered: 16 July, 2011, 02:50:55
Posts: 735


Topic starter
Total Post Ratings: +43

View Profile
« Reply #65 on: 18 September, 2011, 19:28:48 »
0

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)
********
Offline Offline

Gender: Male
Last Login: 13 May, 2013, 22:50:58
Date Registered: 26 October, 2010, 22:05:05
Location: In a pit on an island somewhere in the Atlantic.
Posts: 779


Total Post Ratings: +43

View Profile
« Reply #66 on: 24 September, 2011, 16:34:12 »
0

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)
********
Offline Offline

Gender: Male
Last Login: 20 February, 2013, 02:38:22
Date Registered: 16 July, 2011, 02:50:55
Posts: 735


Topic starter
Total Post Ratings: +43

View Profile
« Reply #67 on: 24 September, 2011, 19:16:32 »
+2

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.

* dummy.zc (0.19 KB - downloaded 24 times.)
* zcompiler.zip (84.68 KB - downloaded 24 times.)
Logged
Binder News
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 13 May, 2013, 22:50:58
Date Registered: 26 October, 2010, 22:05:05
Location: In a pit on an island somewhere in the Atlantic.
Posts: 779


Total Post Ratings: +43

View Profile
« Reply #68 on: 24 September, 2011, 22:14:32 »
0

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: 24 September, 2011, 22:18:06 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)
********
Offline Offline

Gender: Male
Last Login: 20 February, 2013, 02:38:22
Date Registered: 16 July, 2011, 02:50:55
Posts: 735


Topic starter
Total Post Ratings: +43

View Profile
« Reply #69 on: 24 September, 2011, 22:19:49 »
0

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 Wink)

EDIT: Yeah, I know the difference between Read and Peek lol. I was probably just not thinking at the time. And congrats! Smiley
« Last Edit: 24 September, 2011, 22:21:31 by BlakPilar » Logged
BlakPilar
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 20 February, 2013, 02:38:22
Date Registered: 16 July, 2011, 02:50:55
Posts: 735


Topic starter
Total Post Ratings: +43

View Profile
« Reply #70 on: 30 November, 2011, 00:18:54 »
0

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: 01 December, 2011, 01:18:33 by BlakPilar » Logged
BlakPilar
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 20 February, 2013, 02:38:22
Date Registered: 16 July, 2011, 02:50:55
Posts: 735


Topic starter
Total Post Ratings: +43

View Profile
« Reply #71 on: 04 December, 2011, 01:53:54 »
0

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. Smiley

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: 06 December, 2011, 23:26:49 by BlakPilar » Logged
BlakPilar
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 20 February, 2013, 02:38:22
Date Registered: 16 July, 2011, 02:50:55
Posts: 735


Topic starter
Total Post Ratings: +43

View Profile
« Reply #72 on: 06 December, 2011, 23:35:20 »
0

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 Smiley 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: 06 December, 2011, 23:38:25 by BlakPilar » Logged
Scipi
Omni Kitten Meow~ =^ω^=
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: Today at 09:06:06
Date Registered: 12 September, 2010, 08:35:24
Location: Lost Town
Posts: 1386


Total Post Ratings: +146

View Profile WWW
« Reply #73 on: 07 December, 2011, 02:21:32 »
0

For '{}' could they be "[[]]" instead? So:

1
2
3
4
5
while(Arg)
[[
//Code
]]
Logged



Spoiler for Things I find interesting:
Spoiler for AI Programming:
Spoiler for Historical warfare/Formations(Warning: Large images):
Phalanx

Testudo

Schiltron

Better version
Terico

Line

Square

Spoiler for Shameless advertising:

Spoiler for OldSig:
Imma Cat! =^_^= (Make this an emoticon!)





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...

Spoiler for Misc:


Spoiler for Goosed stuff:
FUSION-TIME GO!
BlakPilar
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 20 February, 2013, 02:38:22
Date Registered: 16 July, 2011, 02:50:55
Posts: 735


Topic starter
Total Post Ratings: +43

View Profile
« Reply #74 on: 07 December, 2011, 02:25:51 »
0

Of course! Easily done! Smiley
Logged
Pages: 1 ... 3 4 [5] 6   Go Up
  Print  
 
Jump to:  

Powered by EzPortal
Powered by MySQL Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Powered by PHP
Page created in 0.461 seconds with 30 queries.
Skin by DJ Omnimaga edited from SMF default theme with the help of tr1p1ea.
All programs, games and songs avaliable on this website are property of their respective owners.
Best viewed in Opera, Firefox, Chrome and Safari with a resolution of 1024x768 or above.