Specialized parsers: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
| No edit summary | |||
| (9 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
| <code>parserYourModsHere.pl</code> Modifications to the Parser change the way that student responses are interpreted. By convention files that modify the parser are named starting with "parser" -- e.g. <code>parserYourModsHere.pl</code>.    | |||
| test | |||
| [[SpecializedContexts]] Describes another advanced method for customizing MathObjects by modifying the context. | |||
| Examples of modifications are give below.   | Examples of modifications are give below.    | ||
| A description of advanced techniques for customizing the parser are at [[Modifying Contexts (advanced)]]. | |||
| === Specialized Parser Macro files === | === Specialized Parser Macro files === | ||
| Here is a partial list of the parser modifying files.  | Here is a partial list of the parser modifying files. | ||
| Use <code>loadMacros("parserAssignment.pl");</code> to make the parser modifications available for a WeBWorK question. | Use <code>loadMacros("parserAssignment.pl");</code> to make the parser modifications available for a WeBWorK question. | ||
| Check the [http://webwork.maa.org/pod/pg  POD documentation for more examples.] | |||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserAssignment.html parserAssignment.pl] | ||
| ** checks answers of the form <math>y=3x+5</math> with the LHS of the equation required. | ** checks answers of the form <math>y=3x+5</math> with the LHS of the equation required. | ||
| ** follow the link above to see the additional statements that must be inserted in the question to use this file. | ** follow the link above to see the additional statements that must be inserted in the question to use this file. | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserAutoStrings.html parserAutoStrings.pl] | ||
| ** <code>parserAutoStrings.pl</code> - Force String() to accept any string as a potential answer. | ** <code>parserAutoStrings.pl</code> - Force String() to accept any string as a potential answer. | ||
|     AutoStrings() |     AutoStrings() | ||
| Line 20: | Line 24: | ||
|     DefineStrings(qw(string1 string2))   |     DefineStrings(qw(string1 string2))   | ||
|       -- is a quick way to define "legitimate" strings. |       -- is a quick way to define "legitimate" strings. | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserCustomization.html parserCustomization.pl] | ||
| ** Placeholder for site/course-local customization file. | ** Placeholder for site/course-local customization file. | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserDifferenceQuotient.html parserDifferenceQuotient.pl] | ||
| ** An answer checker for difference quotients. | ** An answer checker for difference quotients. | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserFormulaUpToConstant.html parserFormulaUpToConstant.pl] | ||
| ** implements formulas ``plus a constant''. | ** implements formulas ``plus a constant''. | ||
| ** Students must include the ``+C'' as part of their answers | ** Students must include the ``+C'' as part of their answers | ||
| *  [http://webwork.maa.org/ | *  [http://webwork.maa.org/pod/pg/macros/parserFormulaWithUnits.html parserFormulaWithUnits.pl] | ||
| ** Implements a formula with units. | ** Implements a formula with units. | ||
| ** For example:   | ** For example:   | ||
|        FormulaWithUnits("3x+1 ft")->cmp |        FormulaWithUnits("3x+1 ft")->cmp | ||
|        FormulaWithUnits($a*$x+1,"ft")->cmp |        FormulaWithUnits($a*$x+1,"ft")->cmp | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserFunction.html parserFunction.pl] | ||
| ** An easy way of adding new functions to the current context. | ** An easy way of adding new functions to the current context. | ||
| ** <code>parserFunction("f(x)" => "sqrt(x+1)-2");</code> | ** <code>parserFunction("f(x)" => "sqrt(x+1)-2");</code> | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserImplicitEquation.html parserImplicitEquation.pl] | ||
| ** An answer checker for implicit equations. | ** An answer checker for implicit equations. | ||
|      Context("ImplicitEquation"); |      Context("ImplicitEquation"); | ||
| Line 41: | Line 45: | ||
|      $f = ImplicitEquation("x^2 - 2y^2 = 5",limits=>[[-3,3],[-2,2]]); |      $f = ImplicitEquation("x^2 - 2y^2 = 5",limits=>[[-3,3],[-2,2]]); | ||
|      $f = ImplicitEquation("x=1/y",tolerance=>.0001); |      $f = ImplicitEquation("x=1/y",tolerance=>.0001); | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserImplicitPlane.html parserImplicitPlane.pl] | ||
| ** Implement implicit planes. | ** Implement implicit planes. | ||
|      $P = ImplicitPlane(Point(1,0,2),Vector(-1,1,3)); #  -x+y+3z = 5 |      $P = ImplicitPlane(Point(1,0,2),Vector(-1,1,3)); #  -x+y+3z = 5 | ||
| Line 47: | Line 51: | ||
|      $P = ImplicitPlane([1,0,2],4);                   #  x+2z = 4 |      $P = ImplicitPlane([1,0,2],4);                   #  x+2z = 4 | ||
|      $P = ImplicitPlane("x+2y-z=5"); |      $P = ImplicitPlane("x+2y-z=5"); | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserMultiAnswer.html parserMultiAnswer.pl] | ||
| ** Tie several blanks to a single answer checker. | ** Tie several blanks to a single answer checker. | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserNumberWithUnits.html parserNumberWithUnits.pl]   | ||
| ** Implements a number with units. | ** Implements a number with units. | ||
|      ANS(NumberWithUnits("3 ft")->cmp); |      ANS(NumberWithUnits("3 ft")->cmp); | ||
|      ANS(NumberWithUnits("$a*$b ft")->cmp); |      ANS(NumberWithUnits("$a*$b ft")->cmp); | ||
|      ANS(NumberWithUnits($a*$b,"ft")->cmp); |      ANS(NumberWithUnits($a*$b,"ft")->cmp); | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserParametricLine.html parserParametricLine.pl] | ||
| ** Implements Formulas that represent parametric lines. | ** Implements Formulas that represent parametric lines. | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserPopUp.html parserPopUp.pl] | ||
| ** Pop-up menus compatible with Value objects. | ** Pop-up menus compatible with Value objects. | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserPrime.html parserPrime.pl] | ||
| ** Defines <code> f'(x)</code> so that students and authors can use the prime notation in defining equations. | |||
| ** After loading file use perl command <code>parser::Prime->Enable;</code> to enable the feature. | |||
| * [http://webwork.maa.org/pod/pg/macros/parserRadioButtons.html parserRadioButtons.pl] | |||
| ** Radio buttons compatible with Value objects, specifically MultiAnswer objects. | ** Radio buttons compatible with Value objects, specifically MultiAnswer objects. | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserSolutionFor.html parserSolutionFor.pl]    | ||
| ** An answer checker that checks if a student's answer satisifies a (possibly non-linear) implicit equation. | ** An answer checker that checks if a student's answer satisifies a (possibly non-linear) implicit equation. | ||
| * [http://webwork.maa.org/ | * [http://webwork.maa.org/pod/pg/macros/parserVectorUtils.html parserVectorUtils.pl] | ||
| ** Utility macros that are useful in vector problems. | ** Utility macros that are useful in vector problems. | ||
| [[Category:Contexts]] | |||
| [[Category:MathObjects]] | [[Category:MathObjects]] | ||
| [[Category:Reference Tables]] | |||
Latest revision as of 21:24, 7 April 2021
parserYourModsHere.pl Modifications to the Parser change the way that student responses are interpreted. By convention files that modify the parser are named starting with "parser" -- e.g. parserYourModsHere.pl.  
test
SpecializedContexts Describes another advanced method for customizing MathObjects by modifying the context.
Examples of modifications are give below.
A description of advanced techniques for customizing the parser are at Modifying Contexts (advanced).
Specialized Parser Macro files
Here is a partial list of the parser modifying files.
Use loadMacros("parserAssignment.pl"); to make the parser modifications available for a WeBWorK question.
Check the POD documentation for more examples.
- parserAssignment.pl
- checks answers of the form [math]\displaystyle{ y=3x+5 }[/math] with the LHS of the equation required.
- follow the link above to see the additional statements that must be inserted in the question to use this file.
 
- parserAutoStrings.pl
- parserAutoStrings.pl- Force String() to accept any string as a potential answer.
 
  AutoStrings()
    -- all strings are accepted
  DefineStrings("string1", "string2")
  DefineStrings(qw(string1 string2)) 
    -- is a quick way to define "legitimate" strings.
- parserCustomization.pl
- Placeholder for site/course-local customization file.
 
- parserDifferenceQuotient.pl
- An answer checker for difference quotients.
 
- parserFormulaUpToConstant.pl
- implements formulas ``plus a constant.
- Students must include the ``+C as part of their answers
 
- parserFormulaWithUnits.pl
- Implements a formula with units.
- For example:
 
     FormulaWithUnits("3x+1 ft")->cmp
     FormulaWithUnits($a*$x+1,"ft")->cmp
- parserFunction.pl
- An easy way of adding new functions to the current context.
- parserFunction("f(x)" => "sqrt(x+1)-2");
 
- parserImplicitEquation.pl
- An answer checker for implicit equations.
 
   Context("ImplicitEquation");
   $f = ImplicitEquation("x^2 = cos(y)");
   $f = ImplicitEquation("x^2 - 2y^2 = 5",limits=>[[-3,3],[-2,2]]);
   $f = ImplicitEquation("x=1/y",tolerance=>.0001);
- parserImplicitPlane.pl
- Implement implicit planes.
 
   $P = ImplicitPlane(Point(1,0,2),Vector(-1,1,3)); #  -x+y+3z = 5
   $P = ImplicitPlane([1,0,2],[-1,1,3]);            #  -x+y+3z = 5
   $P = ImplicitPlane([1,0,2],4);                   #  x+2z = 4
   $P = ImplicitPlane("x+2y-z=5");
- parserMultiAnswer.pl
- Tie several blanks to a single answer checker.
 
- parserNumberWithUnits.pl
- Implements a number with units.
 
   ANS(NumberWithUnits("3 ft")->cmp);
   ANS(NumberWithUnits("$a*$b ft")->cmp);
   ANS(NumberWithUnits($a*$b,"ft")->cmp);
- parserParametricLine.pl
- Implements Formulas that represent parametric lines.
 
- parserPopUp.pl
- Pop-up menus compatible with Value objects.
 
- parserPrime.pl
- Defines f'(x)so that students and authors can use the prime notation in defining equations.
- After loading file use perl command parser::Prime->Enable;to enable the feature.
 
- Defines 
- parserRadioButtons.pl
- Radio buttons compatible with Value objects, specifically MultiAnswer objects.
 
- parserSolutionFor.pl
- An answer checker that checks if a student's answer satisifies a (possibly non-linear) implicit equation.
 
- parserVectorUtils.pl
- Utility macros that are useful in vector problems.