This is read.h in view mode; [Download] [Up]
/****************************************************************************
**
*A read.h GAP source Martin Schoenert
**
*A @(#)$Id: read.h,v 3.2 1992/12/08 11:50:26 martin Rel $
**
*Y Copyright 1990-1992, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany
**
** This module declares the functions to read expressions and statements.
**
** <Ident> := a|b|..|z|A|B|..|Z { a|b|..|z|A|B|..|Z|0|..|9|_ }
**
** <Var> := <Ident>
** | <Var> '.' <Ident>
** | <Var> '[' <Expr> ']'
** | <Var> '{' <Expr> '}'
** | <Var> '(' [ <Expr> { ',' <Expr> } ] ')'
**
** <List> := '[' [ <Expr> ] {',' [ <Expr> ] } ']'
** | '[' <Expr> '..' <Expr> ']'
**
** <Record> := 'rec( [ <Ident>:=<Expr> {, <Ident>:=<Expr> } ] )'
**
** <Permutation> := ( <Expr> {, <Expr>} ) { ( <Expr> {, <Expr>} ) }
**
** <Function> := 'function (' [ <Ident> {',' <Ident>} ] ')'
** [ 'local' <Ident> {',' <Ident>} ';' ]
** <Statments>
** 'end'
**
** <String> := " { <any character> } "
**
** <Int> := 0|1|..|9 { 0|1|..|9 }
**
** <Atom> := <Int>
** | <Var>
** | '(' <Expr> ')'
** | <Permutation>
** | <String>
** | <Function>
** | <List>
** | <Record>
**
** <Factor> := {'+'|'-'} <Atom> [ '^' {'+'|'-'} <Atom> ]
**
** <Term> := <Factor> { '*'|'/'|'mod' <Factor> }
**
** <Arith> := <Term> { '+'|'-' <Term> }
**
** <Rel> := { 'not' } <Arith> { '=|<>|<|>|<=|>=|in' <Arith> }
**
** <And> := <Rel> { 'and' <Rel> }
**
** <Log> := <And> { 'or' <Rel> }
**
** <Expr> := <Log>
** | <Var> [ '->' <Log> ]
**
** <Statment> := <Expr>
** | <Var> ':=' <Expr>
** | 'if' <Expr> 'then' <Statments>
** { 'elif' <Expr> 'then' <Statments> }
** [ 'else' <Statments> ] 'fi'
** | 'for' <Var> 'in' <Expr> 'do' <Statments> 'od'
** | 'while' <Expr> 'do' <Statments> 'od'
** | 'repeat' <Statments> 'until' <Expr>
** | 'return' [ <Expr> ]
** | 'quit'
**
** <Statments> := { <Statment> ; }
** | ;
**
*H $Log: read.h,v $
*H Revision 3.2 1992/12/08 11:50:26 martin
*H added '<list>{<positions>}'
*H
*H Revision 3.1 1991/04/30 16:12:41 martin
*H initial revision under RCS
*H
*H Revision 3.0 1990/12/27 12:00:00 martin
*H changed the precedence of the logical operators
*H
*/
/****************************************************************************
**
*F ReadIt() . . . . . . . . . . . . . . . . . read a statement interactivly
**
** 'ReadIt' reads a single statement, returning the handle to the new bag.
** This is the only reading function that doesn't expect the first symbol of
** its input already read and wont read the first symbol of the next input.
** This is the main interface function for the various ReadEvalPrintLoops.
**
** It has this funny name, because 'Read' would give name clash with 'read'
** from the C library on the stupid VAX, which turns all names to uppercase.
*/
TypHandle ReadIt P(( void ));
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.