Sponsored Content
Top Forums Shell Programming and Scripting Function prototype declaration Post 302866493 by Balasankar on Tuesday 22nd of October 2013 05:44:20 AM
Old 10-22-2013
Akshay thanks for quick reply.

Isn't possibe to decare prototype kind of statement as we do in C++ ?

Because the code I have posted should be as it is. I can not put the functions before calling.
Can we let the program know that we are going to use Hello function before funtion command executed.

Thanks!!!
 

7 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Solaris pkgmk -> prototype errors...

I'm attempting to create another package (i.e. for utilizing pkgadd/pkgrm/pkgchk/etc.) But after creating the prototype file, I noticed that some of my files begin with the '=' character. How do I get pkgmk to interpret the "/path/=file" as a single file, rather than interpreting it as... (7 Replies)
Discussion started by: mslightn
7 Replies

2. Programming

gcc warnings: implicit declaration of function...

I am having strange warnings from gcc compiler, which I don't think should come while cmpiling. Can anyone help? The warnings are: - warning: implicit declaration of function 'bzero' - warning: implicit declaration of function 'inet_addr' The code is as below: int main(int argc, char... (2 Replies)
Discussion started by: Ahsan
2 Replies

3. UNIX for Dummies Questions & Answers

Pkgmk....question on prototype file

I've read the man page, but still unclear a bit.... I'm making some packages of files. My pkginfo file has a line BASEDIR=/base/path. I also have several prototype files (depending on the package), that either list the destination path as absolute: f non /abs/path/to/go/here/file1 or are... (0 Replies)
Discussion started by: Yinzer955i
0 Replies

4. Programming

implicit declaration of function 'reboot'

Hi, I'm tying to use the following function to reboot the system as part of my code #include <unistd.h> #include <linux/reboot.h> int restart(unsigned int delay) { sleep(delay); return reboot(LINUX_REBOOT_CMD_RESTART); } When I try to compile the code I get the warning in the... (2 Replies)
Discussion started by: galapogos
2 Replies

5. UNIX for Dummies Questions & Answers

difficult problem with function declaration

Hello, I have a problem with the declaration of a function. This is how I declare the function : c:63: void foo(threadpool *tp,void (*func)(void*), (void*)arg); Inside main, I call it like this: main(){ .......... threadpool y; c:104: ... (4 Replies)
Discussion started by: garag11
4 Replies

6. What is on Your Mind?

My Charts in the Prototype Vue.js UserCP

Yea.... something I thought would take me an hour ended up taking most of the day. Well, it's not like those YT video tutorials where it take a week or more to make a video and the guys (gals) make it look so easy. But having said that, I'm happy to share with forum members the first "My... (6 Replies)
Discussion started by: Neo
6 Replies

7. What is on Your Mind?

Major Changes in New UserCP (v0.63) Prototype

Regarding the latest version of the UserCP prototype (version 0.63) I have made a lot of major changes, including Added a "Posts Timeline" table for the recent posts, complimenting the non-table version earlier, which has been moved off the main menu (link at the bottom of the table). Added a... (4 Replies)
Discussion started by: Neo
4 Replies
JE::Parser(3pm) 					User Contributed Perl Documentation					   JE::Parser(3pm)

NAME
JE::Parser - Framework for customising JE's parser SYNOPSIS
use JE; use JE::Parser; $je = new JE; $p = new JE::Parser $je; # or: $p = $je->new_parser $p->delete_statement('for', 'while', 'do'); # disable loops $p->add_statement(try => &parser); # replace existing 'try' statement DESCRIPTION
This allows one to change the list of statement types that the parser looks for. For instance, one could disable loops for a mini- JavaScript, or add extensions to the language, such as the 'catch-if' clause of a "try" statement. As yet, "delete_statement" works, but I've not finished designing the API for "add_statement". I might provide an API for extending expressions, if I can resolve the complications caused by the 'new' operator. If anyone else wants to have a go at it, be my guest. :-) METHODS
$p = new JE::Parser Creates a new parser object. $p->add_statement($name, &parser); This adds a new statement (source element, to be precise) type to the list of statements types the parser supports. If a statement type called $name already exists, it will be replaced. Otherwise, the new statement type will be added to the top of the list. ($name ought to be optional; it should only be necessary if one wants to delete it afterwards or rearrange the list.) If the name of a statement type begins with a hyphen, it is only allowed at the 'program' level, not within compound statements. Function declarations use this. Maybe this convention is too unintuitive.... (Does anyone think I should change it? What should I change it too?) &parser will need to parse code contained in $_ starting at "pos()", then either return an object, list or coderef (see below) and set "pos()" to the position of the next token[1], or, if it could not parse anything, return undef and reset "pos()" to its initial value if it changed. [1] I.e., it is expected to move "pos" past any trailing whitespace. The return value of &parser can be one of the following: 1) An object with an "eval" method, that will execute the statement, and/or an "init" method, which will be called before the code runs. 2) (Not yet supported!) A coderef, which will be called when the code is executed. 3) (Not yet supported.) A hash-style list, the two keys being "eval" and "init" (corresponding to the methods under item 1) and the values being coderefs; i.e.: ( init => &init_sub, eval => &eval_sub ) Maybe we need support for a JavaScript function to be called to handnle the statement. $p->delete_statement(@names); Deletes the given statement types and returns $p. $p->statement_list (Not yet implemented.) Returns an array ref of the names of the various statement types. You can rearrange this list, but it is up to you to make sure you do not add to it any statement types that have not been added via "add_statement" (or were not there by default). The statement types in the list will be tried in order, except that items beginning with a hyphen always come before other items. The default list is "qw/-function block empty if while with for switch try labelled var do continue break return throw expr/" $p->parse($code) Parses the $code and returns a parse tree (JE::Code object). $p->eval($code) Shorthand for $p->parse($code)->execute; EXPORTS
None by default. You may choose to export the following: Exported Variables ... blah blah blah ... Exported Functions These all have "()" for their prototype, except for "expected" which has "($)". ... blah blah blah ... SYNTAX ERRORS
(To be written) expected 'aaaa'; # will be changed to 'Expected aaaa but found....' die \"You can't put a doodad after a frombiggle!"; # complete message die 'aoenstuhoeanthu'; # big no-no (the error is propagated) EXAMPLES
Mini JavaScript This is an example of a mini JavaScript that does not allow loops or the creation of functions. use JE; $j = new JE; $p = $j->new_parser; $p->delete_statement('for','while','do','-function'); Since function expressions could still create functions, we need to remove the Function prototype object. Someone might then try to put it back with "Function = parseInt.constructor", so we'll overwrite Function with an undeletable read-only undefined property. $j->prop({ name => 'Function', value => undef, readonly => 1, dontdel => 1 }); Then, after this, we call "$p->eval('...')" to run JS code. Perl-style for(LIST) loop Well, after writing this example, it seems to me this API is not sufficient.... This example doesn't actually work yet. use JE; use JE::Parser qw'$s ident expr statement expected'; $j = new JE; $p = $j->new_parser; $p->add_statement('for-list', sub { /Gfor$s/cog or return; my $loopvar = ident or return; /G$s($s/cog or return; my @expressions; do { # This line doesn't actually work properly because # 'expr' will gobble up all the commas @expressions == push @expressions, expr and return; # If nothing gets pushed on to the # list, we need to give the default # 'for' handler a chance, instead of # throwing an error. } while /G$s,$s/cog; my $statement = statement or expected 'statement'; return bless { var => $loopvar, expressions => @expressions, statement => $statement }, 'Local::JEx::ForList'; } ); package Local::JEx::ForList; sub eval { my $self = shift; local $JE::Code::scope = bless [@$JE::Code::scope], 'JE::Scope'; # I've got to come up with a better interface than this. my $obj = $JE::Code::global->eval('new Object'); push @$JE::Code::scope, $obj; for (@{$self->{expressions}}) { $obj->{ $self->{loopvar} } = $_->eval; $self->{statement}->execute; } } SEE ALSO
JE and JE::Code. perl v5.14.2 2012-03-18 JE::Parser(3pm)
All times are GMT -4. The time now is 08:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy