[system] / trunk / webwork-modperl / doc / parser / README Repository:
ViewVC logotype

View of /trunk/webwork-modperl/doc/parser/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2633 - (download) (annotate)
Tue Aug 17 15:13:51 2004 UTC (8 years, 10 months ago) by dpvc
File size: 4866 byte(s)
Updated the parser documentation to include the new features.  In
particular, included information about the answer checkers.

Also, minor changes to some sample problems.

    1 OVERVIEW:
    2 
    3 This directory contains the documentation for a new
    4 mathematical-expression parser written in perl.  It was developed for
    5 use with the WeBWorK on-line homework system, but it can be used in
    6 any perl program.
    7 
    8 The goal was to process vector-valued expressions, but the parser was 
    9 designed to be extensible, so that you could add your own functions, 
   10 operators, and data types.  It is still a work in progress, but should 
   11 provide a framework for building more sophisticated expression handling.
   12 
   13 Currenlty, the parser understands:
   14 
   15    - real and complex numbers,
   16    - points, vectors, and matrices (with real or complex entries)
   17    - arbitrary lists of elements
   18    - intervals and unions of intervals
   19    - predefined strings like 'infinity'
   20 
   21 Some other useful features are that you can write sin^2 x for (sin(x))^2
   22 and sin^-1 x for arcsin(x), and so on.
   23 
   24 Most of the documentation still needs to be written, but you can get some 
   25 ideas from the samples in the problems and extensions directories, and by 
   26 reading the files in the docs directory.
   27 
   28 
   29 INSTALLATION:
   30 
   31 The parser should already be installed as part of the WeBWorK 2.1
   32 distribution, so you should not need to install it separately.  If you
   33 don't seem to have it installed, then it can be obtained from the
   34 Union CVS repository at
   35 
   36   http://devel.webwork.rochester.edu/twiki/bin/view/Webwork/WeBWorKCVS
   37 
   38 The README file in that directory contains the installation instructions.
   39 
   40 
   41 SAMPLE FILES:
   42 
   43 Sample problems are given in the problems and extensions directories.  Move 
   44 these to the templates directory of a course where you want to test the 
   45 Parser, and move the contents of the macros directory to that course's 
   46 macros directory.
   47 
   48 Now try looking at these problems using the Library Browser.  Edit the
   49 source to see how they work, and to read the comments within the code
   50 itself.
   51 
   52 
   53 EXAMPLE FILES:
   54 
   55 The 'problems' directory contains several examples that show how to use 
   56 Parser within your problem files.
   57 
   58     sample01.pg
   59         Uses the parser to make a string into a formula that you can
   60         evaluate and print in TeX form
   61 
   62     sample02.pg
   63         Shows how to create formulas using perl's usual mathematical
   64         expressions rather than character strings.
   65 
   66     sample03.pg
   67         Shows how to use the parser's differentiation abilities.
   68 
   69     sample04.pg and sample05.pg
   70         Use the parser in conjunction with the graphics macros to generate 
   71         function graphs on the fly.  These also show how to create a 
   72         perl function to evaluate an expression.
   73 
   74     sample06.pg
   75         Shows some simple use of vectors in a problem.
   76 
   77     sample07.pg
   78         Example if using the build-in Real object and its answer
   79         checker
   80 
   81    sample08.pg
   82         Uses complex numbers and the built-in checker
   83 
   84    sample09.pg and sample10.pg
   85         Demonstrates points and vectors and their answer checkers
   86 
   87    sample11.pg and sample12.pg
   88         Shows the answer checkers for intervals and unions.
   89 
   90    sample13.pg, sample14.pg, sample15.pg
   91         Demonstrate various list checkers, including a check for the
   92         word 'NONE', which is a predefined string.
   93 
   94    sample16.pg, sample17.pg, sample18.pg
   95         These show the multi-variable function checker in use (for
   96         functions of the form R->R, R^2->R and R->R^3).
   97 
   98    sample19.pg
   99         Uses the function checker to implement a "constant" that can
  100         be used in formulas.
  101 
  102    sample20.pg
  103         Shows how to use the parser's substitution abilities.
  104 
  105    sample21.pg
  106         Checks for a list of points.
  107 
  108    sample22.pg
  109         Shows how to provide named constants that the student can
  110 	use in his answer.
  111 
  112 The 'examples' directory contains samples that show how to extend the 
  113 parser to include your own functions, operators, and so on.  There are also 
  114 some samples of how to call the methods available for Formula objects 
  115 generated by the parser, and what some error messages look like.
  116 
  117     1-function.pg
  118        Adds a single-variable function to the parsers list of functions.
  119 
  120     2-function.pg
  121        Adds a two-variable function to the parser.
  122 
  123     3-operator.pg
  124        Adds a binary operator to the parser.  (Unary operators are similar.)
  125 
  126     4-list.pg
  127        Adds a new "list type" object.  In this case, it's really an
  128        operation [n,r] that returns n choose r.
  129 
  130     5-list.pg
  131        Add a new "equality" operator that you can use to handle answers
  132        like "x+y=0".
  133 
  134     6-precedence.pg
  135        Shows an experimental precedence setting that can be used to make
  136        sin 2x return sin(2x) rather than (sin(2))x.
  137 
  138     7-context.pg
  139        Shows how to switch contexts (in this case, to complex and to vector
  140        contexts), and how this affects the parsing.
  141 
  142     8-answer.pg
  143        Implements a simple vector-valued answer checker using the
  144        parser's computation and comparison ability.
  145 

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9